r - 如何正确使用 `[` 和 (l|s)apply 从矩阵列表中选择特定列?

标签 r

考虑以下情况,我在对象 myList 中有一个包含 n 个矩阵的列表(在下面的示例中这只是虚拟数据)。

mat <- matrix(1:12, ncol = 3)
myList <- list(mat1 = mat, mat2 = mat, mat3 = mat, mat4 = mat)

我想从每个矩阵中选择一个特定的列并用它做一些事情。这将使我获得每个矩阵的第一列并将其作为矩阵返回( lapply() 会给我一个列表,要么很好)。
sapply(myList, function(x) x[, 1])

我似乎无法做的是使用 [直接作为我 sapply() 中的函数或 lapply()咒语。 ?'['告诉我我需要提供参数 j作为列标识符。那么我做错了什么,这不起作用?
> lapply(myList, `[`, j = 1)
$mat1
[1] 1

$mat2
[1] 1

$mat3
[1] 1

$mat4
[1] 1

我期望的地方:
$mat1
[1] 1 2 3 4

$mat2
[1] 1 2 3 4

$mat3
[1] 1 2 3 4

$mat4
[1] 1 2 3 4

我怀疑我弄错了[方法,但我不知道为什么?想法?

最佳答案

我认为您正在获得 [ 的 1 个参数形式.如果你这样做 lapply(myList, `[`, i =, j = 1)有用。

关于r - 如何正确使用 `[` 和 (l|s)apply 从矩阵列表中选择特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054003/

相关文章:

r - 设置整个 ggvis 图的高度和宽度,包括轴和轴标签

r - 按组查找运行最大值

r - 矢量子集性能 : name versus index

R levelplot 删除外边框(调整绘图边框)

r - R水平图,非连续纬度和经度值

固定长度的随机子集,使得每个组至少出现 N 次

string - 计算 R 中单词出现的次数

r - 使用作为数据框列的参数计算 R 函数

r - 关于 data.table 环境错误的函数

mysql - 如何在 r 中执行 MySQL 更新查询