Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
从长列到grup列表的data.table_R_Data.table - Fatal编程技术网

从长列到grup列表的data.table

从长列到grup列表的data.table,r,data.table,R,Data.table,我试图将所有值按组“粘贴”到列表中。类似于粘贴(x,collapse=“-”)的功能,但输出应该是一个列表。我成功地将其分为两个步骤。可以一步完成吗 library("data.table") d <- data.table( sample(letters, 100, replace = T), sample(LETTERS,100, replace = T)) %>% unique d[, paste0(V2, collapse = "--"), by=V1] %>

我试图将所有值按组“粘贴”到列表中。类似于粘贴(x,collapse=“-”)的功能,但输出应该是一个列表。我成功地将其分为两个步骤。可以一步完成吗

library("data.table")

d <- data.table( sample(letters, 100, replace = T), sample(LETTERS,100, replace = T)) %>%    unique

d[, paste0(V2, collapse = "--"), by=V1] %>% head
    V1               V1
1:  m       E--T--L--Q
2:  k    J--H--W--P--X
3:  v          D--W--X
4:  g          H--E--I
5:  c K--U--X--H--Y--N
6:  l    O--H--J--R--U

dd <- split(d, by="V1", keep.by=FALSE)
data.table(names(dd), sapply(dd, "[") ) %>% head
   V1          V2
1:  m     E,T,L,Q
2:  k   J,H,W,P,X
3:  v       D,W,X
4:  g       H,E,I
5:  c K,U,X,H,Y,N
6:  l   O,H,J,R,U
库(“data.table”)
d%唯一
d[,粘贴0(V2,collapse=“--”,by=V1]]>%head
V1
1:Me--T--L--Q
2:kj--H--W--P--X
3:vd--W--X
4:GH--E--I
5:Ck--U--X--H--Y--N
6:LO--H--J--R--U
dd%水头
V1 V2
1:Me,T,L,Q
2:kj,H,W,P,X
3:vd,W,X
4:GH,E,I
5:Ck,U,X,H,Y,N
6:LO,H,J,R,U

我也尝试了shift,但没有成功

我们可以将其包装在
列表中

dd <- d[, .(V2 = list(V2)), V1]
head(dd)
#   V1              V2
#1:  c     Z,W,K,G,Q,A
#2:  a       V,X,T,D,K
#3:  w           Z,I,N
#4:  u N,Y,H,U,M,Z,...
#5:  d         G,M,D,B
#6:  q O,Z,K,V,I,X,...

str(dd)
#Classes ‘data.table’ and 'data.frame': 25 obs. of  2 variables:
# $ V1: chr  "c" "a" "w" "u" ...
# $ V2:List of 25
#  ..$ : chr  "Z" "W" "K" "G" ...
#  ..$ : chr  "V" "X" "T" "D" ...
#  ..$ : chr  "Z" "I" "N"
#  ..$ : chr  "N" "Y" "H" "U" ...
#  ..$ : chr  "G" "M" "D" "B"
# ..

dd抱歉描述不准确,它应该是一个包含字符串向量的列表,而不是一个包含一个字符串的列表。现在我意识到了为什么在我第一次尝试时它不起作用。最初的意图是通过引用修改表,以便每个条目都有一个列表。在不进行第二步合并的情况下可以实现这一点吗?