0
我有一個像重新安排數據幀
col1 col2 col3 col4
a 0 t .1
b 0 t .2
a 1 f .3
b 1 f .4
數據幀我需要重新安排它這種格式
a b
0 t .1 .2
1 f .3 .4
我知道這可以用dcast函數來完成。但我無法弄清楚究竟是如何?
我有一個像重新安排數據幀
col1 col2 col3 col4
a 0 t .1
b 0 t .2
a 1 f .3
b 1 f .4
數據幀我需要重新安排它這種格式
a b
0 t .1 .2
1 f .3 .4
我知道這可以用dcast函數來完成。但我無法弄清楚究竟是如何?
正如你提到的,這可以用dcast
從 「reshape2」 完成:
library(reshape2)
dcast(mydf, col2 + col3 ~ col1, value.var = "col4")
# col2 col3 a b
# 1 0 t 0.1 0.2
# 2 1 f 0.3 0.4
它也可以與reshape
從基礎R做:
> reshape(mydf, direction = "wide", idvar = c("col2", "col3"), timevar = "col1")
col2 col3 col4.a col4.b
1 0 t 0.1 0.2
3 1 f 0.3 0.4
而且隨着spread
,來自「tidyr」:
> library(dplyr)
> library(tidyr)
> mydf %>% spread(col1, col4)
col2 col3 a b
1 0 t 0.1 0.2
2 1 f 0.3 0.4
如果我必須按降序排列每行中的a和b的所有值,該怎麼辦? – user3664020 2014-10-20 06:39:10
@ user3664020 - 先對原始數據中的值進行排序,然後重新整形。 – thelatemail 2014-10-20 06:46:18