dcast 从宽到长
dcast from wide to long
这应该很容易,但我找不到正确的方法。
jk <- data.frame(j=c("a","b","a","b"),val=c(1,3,2,1))
我想 dcast 到 return 两列 a 和 b,分别带有 {1,2} 和 {3,1}。
在base R
中,我们可以使用unstack
unstack(jk, val ~ j)
-输出
# a b
#1 1 3
#2 2 1
如果我们使用 dcast
,请创建一个序列列,因为 'j'
有重复项
library(data.table)
dcast(setDT(jk), rowid(j) ~ j, value.var = 'val')[, j := NULL][]
-输出
# a b
#1: 1 3
#2: 2 1
这应该很容易,但我找不到正确的方法。
jk <- data.frame(j=c("a","b","a","b"),val=c(1,3,2,1))
我想 dcast 到 return 两列 a 和 b,分别带有 {1,2} 和 {3,1}。
在base R
中,我们可以使用unstack
unstack(jk, val ~ j)
-输出
# a b
#1 1 3
#2 2 1
如果我们使用 dcast
,请创建一个序列列,因为 'j'
library(data.table)
dcast(setDT(jk), rowid(j) ~ j, value.var = 'val')[, j := NULL][]
-输出
# a b
#1: 1 3
#2: 2 1