根据 R 中另一列中指定的数字报告编号列的值



我有什么:

数据

0_x  1_x  2_x ...10_x num_col 
0.2  0.3  0.4          2
0.3. 0.5  0.3          1
0    0.2  0.8          3

我想要什么:

0_x  1_x  2_x ...10_x num_col value
0.2  0.3  0.4      .   2       0.3
0.3. 0.5  0.3      .   1       0.3
0    0.2  0.8      .   3       0.8

基本上我想创建一个列,其值对应于"num_col"指示的列

涉及dplyr的一个选项可能是:

df %>% 
rowwise() %>% 
mutate(value = get(paste0(num_col-1, "_x"))) %>%
ungroup()
`0_x` `1_x` `2_x` num_col value
<dbl> <dbl> <dbl>   <int> <dbl>
1   0.2   0.3   0.4       2   0.3
2   0.3   0.5   0.3       1   0.3
3   0     0.2   0.8       3   0.8

但是,它假定您的列以某种方式命名。

示例数据:

df <- structure(list(`0_x` = c(0.2, 0.3, 0), `1_x` = c(0.3, 0.5, 0.2
), `2_x` = c(0.4, 0.3, 0.8), num_col = c(2L, 1L, 3L)), class = "data.frame", row.names = c(NA, 
                     -3L))

最新更新