请考虑以下数据集:
df <- tibble(v1 = 1:5, v2= 101:105, v3 = c("v1", "v2", "v1", "v2", "v1"))
# A tibble: 5 × 3
v1 v2 v3
<int> <int> <chr>
1 1 101 v1
2 2 102 v2
3 3 103 v1
4 4 104 v2
5 5 105 v1
我想生成一个新的列,该列根据
v3
中所列出的是 v1
还是 v2
,从而取值。 # A tibble: 5 × 4
v1 v2 v3 v4
<int> <int> <chr> <dbl>
1 1 101 v1 1
2 2 102 v2 102
3 3 103 v1 3
4 4 104 v2 104
5 5 105 v1 5
通常情况下,我会使用
if_else
,或者如果有更多的情况,就会用case_when
。但是,我有很多列,所以我不想有一个很长的case_when
语句。有没有办法让R将v3
中的值解释为列名?我尝试了用{{ }}
来包含表达式,并使用.data[[ ]]
,但我似乎不能弄清正确的语法。
get
选项。谢谢! - conflictcoder