【发布时间】:2021-06-15 15:47:41
【问题描述】:
我正在尝试根据某些条件创建一个新变量。我有以下数据:
df <- data.frame(ID = c("A1","A1","A2","A2","A3","A4","A4"),
type = c("small","large","small","large","large","small","large"),
code = c("B9", "[0,20]","B9","[20,40]","[0,20]","B9","[40,60]" ))
这给出了:
ID type code
1 A1 small B9
2 A1 large [0,20]
3 A2 small B9
4 A2 large [20,40]
5 A3 large [0,20]
6 A4 small B9
7 A4 large [40,60]
我想创建一个新变量(code2),它基于 type == large 和 code 的相应值,同时按 ID。所以 ID - A1 应该有 [0,20] 作为它的代码 2。我想实现以下目标:
ID type code code2
1 A1 small B9 [0,20]
2 A1 large [0,20] [0,20]
3 A2 small B9 [20,40]
4 A2 large [20,40] [20,40]
5 A3 large [0,20] [0,20]
6 A4 small B9 [40,60]
7 A4 large [40,60] [40,60]
据我所知,我正在尝试使用dplyr 和ifelse,但没有运气。
【问题讨论】:
标签: r