考虑以下情况,我在对象 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/