我正在寻找一种方法来做一个相当于R中的累积和的字符串/字符格式的文本而不是数字.应连接不同的文本字段.
例如,在数据框"df"中:
A列包含输入,B列包含所需结果.
A B
1 banana banana
2 boats banana boats
3 are banana boats are
4 awesome banana boats are awesome
Run Code Online (Sandbox Code Playgroud)
目前我通过以下循环解决这个问题
df$B <- ""
for(i in 1:nrow(df)) {
if (length(df[i-1,"A"]) > 0) {
df$B[i] <- paste(df$B[i-1],df$A[i])
} else {
df$B[i] <- df$A[i]
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否存在更优雅/更快的解决方案.
Jul*_*ora 11
(df$B <- Reduce(paste, as.character(df$A), accumulate = TRUE))
# [1] "banana" "banana boats" "banana boats are" "banana boats are awesome"
Run Code Online (Sandbox Code Playgroud)