我想给矩阵列表中的每个矩阵一个恒定的列值。这是矩阵列表。
list_matrix_Tanzania_Mod <- lapply(1:4, function(i)
matrix(sample(1:50, 4*10, replace=TRUE),
ncol=4, dimnames=list(NULL, LETTERS[1:4])))
这是一个矩阵的例子。
[[1]]
A B C D
[1,] 15 31 5 16
[2,] 12 19 28 12
[3,] 36 34 37 19
[4,] 26 34 7 8
[5,] 34 17 12 47
[6,] 47 46 35 11
[7,] 14 10 4 37
[8,] 39 3 30 32
[9,] 41 26 32 35
[10,] 13 7 3 49
我希望每个矩阵中的列D获得值Modis500_2000
而不是数字。
我也希望列C等于AB。例如,在上面的矩阵示例中,我希望第一行的C列获得值1531而不是5。
我读了您先前的问题(在R矩阵列表中的每个矩阵中添加新列),我强烈建议您切换到使用data.frames而不是矩阵。我认为这是适合您的工作类型的更好的数据结构。然后,您可以使用一种函数transform
,以一种非常简单直观的方式添加/修改列:
list_matrix_Tanzania_Mod <- lapply(list_matrix_Tanzania_Mod,
transform,
C = A * B,
D = Modis500_2000,
E = A + B)
这将修改两列(C
和D
),并添加一列(E
)。
如果您需要将数据转换回矩阵,则可以执行以下操作:
list_matrix_Tanzania_Mod <- lapply(list_matrix_Tanzania_Mod,
data.matrix)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句