自我合并数据帧与R中的滞后?

时间:2016-03-01 23:22:28

标签: r merge

这里有一些R代码将foo与自身合并,并且有一天的延迟:

foo <- data.frame(user=c(10,10,10,11,11,11),
                  day=c(1,2,3,1,2,3),
                  something=c('a', 'b', 'c', 'd', 'e', 'f'))
foo$prev_day <- foo$day - 1
foo2 <- merge(foo, foo,
                by.x=c('user', 'day'),
                by.y=c('user', 'prev_day'))

#Warning message:
#In merge.data.frame(foo, foo, by.x = c("user", "day"), by.y = c("user",  :
#  column name ‘day’ is duplicated in the result

foo2

  user day something.x prev_day day something.y
1   10   1           a        0   2           b
2   10   2           b        1   3           c
3   11   1           d        0   2           e
4   11   2           e        1   3           f

请注意,它会在结果中抱怨并且“天”两次,但看起来非常好(每个用户只与自身合​​并)。

正确执行此操作的最简单方法是什么,即没有警告,只有第一个“日期”列,而不是结果中的第二个?

1 个答案:

答案 0 :(得分:3)

从第二个数据集中删除“day”列,以避免control.pop <- as.integer(population * (1 - split)变量与其他现有变量之间发生冲突。

round