【发布时间】:2018-09-22 17:34:24
【问题描述】:
假设我有一个数据框,其中包含一些分类变量和一些字符串值的列。我想创建一个新列,如果分类列中的某些值匹配(或不匹配),则对于每一行,粘贴来自其他行的字符串值。这是一个玩具示例。
toy <- data.frame("id" = c(1,2,3,2), "year" = c(2000,2000,2004,2004), "words" = c("a b", "c d", "e b", "c d"))
如果满足两个条件,我想创建一个从其他行的words 列粘贴的变量word_pool:行的id 值不同于当前行的id 值和行的year value 小于当前行的年份值。
结果应该是
id year words word_pool
1 2000 a b
2 2000 c d
3 2004 e b a b c d
2 2004 c d a b
新列的前两行将是空白的,因为在玩具示例中没有少于 2000 年的年份。最后一行将只有“a b”作为新列中的值,因为它的 id 重复了。
我尝试了各种apply 和group_by 方法,但似乎没有一个完全符合要求。将不胜感激任何和所有的想法!
【问题讨论】: