我正在尝试从重新整形的数据集中粘贴字符串。我正在使用data.table包,如下所示:
m<-data.frame(x=rep(c("a","b"),20),y=factor(sample(letters,40,replace=T)))
DT<-data.table(m)
setkey(DT,x)
DT[,paste(y,sep=","),by=x]
但是,除了变量名之外,这只会给出一个与原始帧完全相同的新帧。我希望输出是两个连接的向量,其中变量被粘贴在一起。我怎么能这样做?
答案 0 :(得分:9)
为了完整性&#39;缘故,官方回答:
如果您使用paste(y,collapse=",")
,则应该可以使用。
答案 1 :(得分:0)
toString(y)
函数产生的结果与paste(y, collapse = ", ")
相同,我用它代替了较长的粘贴版本。所以
DT[, toString(y), by = x]
将产生结果
# x V1
#1: a v, o, q, p, t, c, y, d, n, r, o, k, v, r, t, n, e, f, g, u
#2: b y, j, t, l, w, r, s, w, b, x, h, j, o, k, a, c, r, c, b, e
与粘贴相同
DT[, paste(y, collapse = ", "), by = x]