Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过转换独特的RHS将dcast从长到宽_R_Data.table - Fatal编程技术网

通过转换独特的RHS将dcast从长到宽

通过转换独特的RHS将dcast从长到宽,r,data.table,R,Data.table,假设我有一张如下所示的桌子: DT <- data.table(ID1= rep(c("a","b","c"),3),ID2=rnorm(9,4),var = 1:9) ## > DT ## ID1 ID2 var ## 1: a 2.630392 1 ## 2: b 3.966620 2 ## 3: c 4.002776 3 ## 4: a 3.188372 4 ## 5: b 4.735084 5 ## 6: c 4.

假设我有一张如下所示的桌子:

DT <- data.table(ID1= rep(c("a","b","c"),3),ID2=rnorm(9,4),var = 1:9)

## > DT
##    ID1      ID2 var
## 1:   a 2.630392   1
## 2:   b 3.966620   2
## 3:   c 4.002776   3
## 4:   a 3.188372   4
## 5:   b 4.735084   5
## 6:   c 4.307198   6
## 7:   a 2.830868   7
## 8:   b 4.892684   8
## 9:   c 3.429826   9
期望输出:

dcast(DT,ID1~ID2)
##    ID1 1 2 3
## 1:   a 1 4 7
## 2:   b 2 5 8
## 3:   c 3 6 9
试一试


我在想这样的事情。但是不知道
.N
。我在医生那里没看见。thanks@DJJ其想法是创建一个序列列。另一个选项是
库(splitstackshape);dcast.data.table(getanID(DT,'ID1'),ID1~.id,value.var='var')
我倾向于选择data.table选项,但第二个选项在其他情况下也很方便。非常感谢你。@DJJ没问题。很乐意帮忙you@DJJ,
getanID
本质上与“data.table选项”相同:-)
dcast.data.table(DT[,N:=1:.N ,ID1], ID1~N, value.var='var')
#   ID1 1 2 3
#1:   a 1 4 7
#2:   b 2 5 8
#3:   c 3 6 9