我有一个数据框,我想根据下一个单元格的输入将单个单元格的输入复制 n 次并将其显示在新单元格中。
我的数据框如下所示:
data <- data.frame(c(1,1,2,3,4,4,4), c("A","B","A","C","D","E","A"), c(2,1,1,3,2,1,3))
colnames(data) <- c("document number", "term", "count")
data
这是我想要的结果:
datanew <- data.frame(c(1,2,3,4), c("A A B", "A", "C C C", "D D E A A A"))
colnames(datanew) <- c("document number", "term")
# document number term
# 1 1 A A B
# 2 2 A
# 3 3 C C C
# 4 4 D D E A A A
所以基本上,我喜欢将术语单元格的输入与相应计数单元格的输入相乘。有谁知道如何用 R 编写它吗?
最佳答案
我们可以使用 rep
复制 term
count
次并将数据粘贴
在一起。
library(dplyr)
data %>%
group_by(`document number`) %>%
summarise(new = paste(rep(term, count), collapse = " "))
# A tibble: 4 x 2
# `document number` new
# <dbl> <chr>
#1 1 A A B
#2 2 A
#3 3 C C C
#4 4 D D E A A A
与data.table
类似
library(data.table)
setDT(data)[, (new = paste(rep(term, count), collapse = " ")),
by = `document number`]
关于r - 如何将数据帧中的字符串单独复制N次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58287212/