【发布时间】:2015-12-07 06:51:26
【问题描述】:
我有一个数据框,df。我按 v1 和 v2 排序的数据帧。 对于 v1 中的每组唯一值(样本数据中的值 1、2 和 3),我想计算一个新变量 v5。
v5 的值取决于 v3 和 v4 的值: 如果 v3 == “新”,则 v5 == v4。 如果 v3 == "Old" 则 v5 在 v3 中第一个前面的值等于 "New" 的行中获取 v4 的值。都在 v1 的同一个“组”中。
样本数据:
df <- data.frame(v1=c(1,1,1,2,2,2,3,3,3,3),
v2=c(1,2,3,1,2,3,1,2,3,4),
v3=c("New", "Old", "Old","New", "Old", "New","New", "New", "Old","Old"),
v4=c("A","B","C","X","Y","Z","A","B","C","D"))
v1 v2 v3 v4
1 1 New A
1 2 Old B
1 3 Old C
2 1 New X
2 2 Old Y
2 3 New Z
3 1 New A
3 2 New B
3 3 Old C
3 4 Old D
期望的输出:
v1 v2 v3 v4 v5
1 1 New A A
1 2 Old B A
1 3 Old C A
2 1 New X X
2 2 Old Y X
2 3 New Z Z
3 1 New A A
3 2 New B B
3 3 Old C B
3 4 Old D B
【问题讨论】:
标签: r