我正在嘗試使用R的by
命令獲取數據幀子集的列方式。例如,考慮這個數據幀:將R的「by」命令的輸出轉換爲數據幀
> by(z[,2:5],z$labels,colMeans)
z[, 1]: a
data.1 data.2 data.3 data.4
1.5 6.5 11.5 16.5
------------------------------------------------------------
z[, 1]: b
data.1 data.2 data.3 data.4
3 8 13 18
------------------------------------------------------------
z[, 1]: c
data.1 data.2 data.3 data.4
4.5 9.5 14.5 19.5
但我怎麼要挾輸出回數據:
> z = data.frame(labels=c("a","a","b","c","c"),data=matrix(1:20,nrow=5))
> z
labels data.1 data.2 data.3 data.4
1 a 1 6 11 16
2 a 2 7 12 17
3 b 3 8 13 18
4 c 4 9 14 19
5 c 5 10 15 20
我均可以使用的by
命令來獲得柱根據標籤欄是指幀? as.data.frame
不工作...
> as.data.frame(by(z[,2:5],z$labels,colMeans))
Error in as.data.frame.default(by(z[, 2:5], z$labels, colMeans)) :
cannot coerce class '"by"' into a data.frame
太棒了!儘管「聚合」似乎是最簡單的(對我來說最簡單的方法就是在將來再次找出問題),所有人都在做我正在尋找的東西。謝謝! – Andrew