Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
720 views
in Technique[技术] by (71.8m points)

r - Group by ID, each element of the new table is a vector

I have a table like this

data.table(ID = c(1,2,3,4,5,6), 
         R = c("s","s","n","n","s","s"), 
         S = c("a","a","a","b","b","b"))

and I'm trying to get this result

      a     b
s   1, 2      5, 6
n     3         4

Is there any option in data.table can do this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Here's an alternative that uses plain old data.table syntax:

DT[,lapply(split(ID,S),list),by=R]

# or...

DT[,lapply(split(ID,S),toString),by=R]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...