我的输出是这样的:
class(results)
## [1] "list"
results
## [[1]]
## default n FAC2
## 1 all data 808 0.4740099
## [[2]]
## default n FAC2
## 1 all data 625 0.968
## [[3]]
## default n FAC2
## 1 all data 796 0.2148241
我的问题是如何重新排列这些输出:
n FAC2
1 808 0.4740099
2 625 0.9680000
3 796 0.2148241
抓取n的所有值并将它们放在一个column
中,并将其放在FAC2
中。
答案 0 :(得分:3)
results <- list(data.frame(default='all data',n=808,FAC2=0.4740099),data.frame(default='all data',n=625,FAC2=0.968),data.frame(default='all data',n=796,FAC2=0.2148241));
do.call(rbind,results)[,c('n','FAC2')];
## n FAC2
## 1 808 0.4740099
## 2 625 0.9680000
## 3 796 0.2148241
如果您不介意在结果中包含[,c('n','FAC2')]
列,则可以放弃索引操作default
。
添加一列:
transform(do.call(rbind,results)[,c('n','FAC2')],new=(n+FAC2)^2);
## n FAC2 new
## 1 808 0.4740099 653630.2
## 2 625 0.9680000 391835.9
## 3 796 0.2148241 633958.0
或者:
x <- do.call(rbind,results)[,c('n','FAC2')];
x$new <- (x$n+x$FAC2)^2;
x;
## n FAC2 new
## 1 808 0.4740099 653630.2
## 2 625 0.9680000 391835.9
## 3 796 0.2148241 633958.0
列意味着:
rbind(x,apply(x,2,mean));
## n FAC2 new
## 1 808 0.4740099 653630.2
## 2 625 0.9680000 391835.9
## 3 796 0.2148241 633958.0
## 4 743 0.5522780 559808.1
或者:
rbind(x,colMeans(x));
## n FAC2 new
## 1 808 0.4740099 653630.2
## 2 625 0.9680000 391835.9
## 3 796 0.2148241 633958.0
## 4 743 0.5522780 559808.1
在identity
列中捕获列表组件编号:
do.call(rbind,Map(cbind,results,identity=1:length(results)));
## default n FAC2 identity
## 1 all data 808 0.4740099 1
## 2 all data 625 0.9680000 2
## 3 all data 796 0.2148241 3