【发布时间】:2014-03-06 17:49:03
【问题描述】:
我想分别将单个列表名称添加到最后一列。有效地做到这一点的最佳方法是什么。
lst <- list(a=matrix(runif(10), nrow=5, ncol=2), b=matrix(runif(6), nrow=3, ncol=2))
$a
[,1] [,2]
[1,] 0.5257330 0.52673079
[2,] 0.2103107 0.23357179
[3,] 0.3745236 0.03687697
[4,] 0.9731074 0.15569480
[5,] 0.2248541 0.60258915
$b
[,1] [,2]
[1,] 0.9901820 0.3648310
[2,] 0.8922225 0.4285105
[3,] 0.6963518 0.5795353
我想要这个:这意味着单个列表名称应分别添加到最后一列。
$a
[,1] [,2] [,3]
[1,] "0.52573303761892" "0.526730791199952" "a"
[2,] "0.210310699883848" "0.233571790158749" "a"
[3,] "0.374523550504819" "0.0368769748602062" "a"
[4,] "0.973107369150966" "0.155694802291691" "a"
[5,] "0.224854125175625" "0.602589153219014" "a"
$b
[,1] [,2] [,3]
[1,] "0.990182007197291" "0.36483103595674" "b"
[2,] "0.892222490161657" "0.42851050500758" "b"
[3,] "0.696351842954755" "0.579535307129845" "b"
任何帮助将不胜感激。
凯文
【问题讨论】:
-
lapply(names(lst), function(x) cbind(lst[[x]], x))?为什么要这样做? -
谢谢阿难。我的问题是这样的:stackoverflow.com/questions/22233358/…我的方法很差,但是在使用你的答案作为中间步骤后可能会起作用。所以我寻找一种更好的方法,这就是我问你问题的原因。 @Rcoster
标签: r