我有一个数据集,长这样:
rownum<-c(1,2,3,4,5,6,7,8,9,10)
name<-c("jeff","jeff","mary","jeff","jeff","jeff","mary","mary","mary","mary")
text<-c("a","b","c","d","e","f","g","h","i","j")
a<-data.table(rownum,name,text)
我想添加一列新的文本,该列通过行号和名称从上一列中添加。新列的向量将是:
rolltext<-c("a","ab","c","abd","abde","abdef","cg","cgh","cghi","cghij"
在这里我不知道该怎么做。对于数字,我只需要使用cumsum函数,但对于文本,我认为我需要使用for循环或其中一个apply函数?
a[, rolltext := sapply(1:.N, function(x) paste(text[1:x], collapse = '')), by = name]
。 - David Arenburgsum(seq(.N)-1)
与使用Reduce
的.N-1
相比)。这是我的直觉/猜测。 - Frank