library(tidyverse)
dat %>%
group_by(group) %>%
mutate(text=paste0(lag(text),text)) %>% slice(-1)
使用data.table:
library(data.table)
setDT(dat)
dat[, paste0(shift(text,1), text)[-1], by=group]
# group V1
#1: a a1a2
#2: a a2a3
#3: b b1b2
#4: c c1c2
#5: c c2c3
#6: c c3c4
4条答案
按热度按时间dy2hfwbg1#
备选答案
tidyverse
:使用
data.table
:7uzetpgm2#
不如这样吧:
或
第一次
上面的代码假定组长度总是大于1。如果有单行组,则需要使用
if
语句来区别对待。例如,如果我们添加一行,其中group=“d”,text=“d1”,则可以执行以下操作:第一个
2g32fytz3#
您可以尝试:
brvekthn4#
split
和stack
的另一个base R
选项