【发布时间】:2021-10-21 14:02:24
【问题描述】:
我实际上有一个非常简单的任务要做,但我就是找不到解决方案。我有一个带有 2 列数字和 1 列 3 个不同字符串的 df。我现在想添加第 4 列 V4,我想用 V1 和 V2 的值填充,具体取决于 V3 列。
> df
V1 V2 V3
1 1 6 P
2 2 7 P
3 3 8 N
4 4 9 B
5 5 10 P
6 6 11 B
7 7 12 N
8 8 13 N
9 9 14 P
10 10 15 P
structure(list(V1 = 1:10, V2 = 6:15, V3 = c("P", "P", "N", "B", "P", "B", "N", "N", "P", "P")), row.names = c(NA, -10L), class = "data.frame")
对于“P”,我想取 V1,对于“N”,我想取 V2,对于“B”,我理想情况下希望两个值彼此相邻(V1|V2),但不让它们成为字符,它们必须保持数字。如果这不可能,则应填写较大的数字。
我的输出应该是这样的(数字)。或者,如果无法显示 4|9 或类似数字的内容,则仅显示这 2 个中较大的数字。
V1 V2 V3 V4
1 1 6 P 1
2 2 7 P 2
3 3 8 N 8
4 4 9 B 4|9
5 5 10 P 5
6 6 11 B 6|11
7 7 12 N 12
8 8 13 N 13
9 9 14 P 9
10 10 15 P 10
我发现了很多如何通过仅填充列来执行此操作,但我找不到任何示例根据 3 个条件用其他列的值填充列。我尝试了带有循环和子集的 if 语句,但到目前为止我失败了。
【问题讨论】:
标签: r if-statement conditional-statements subset