我有什么:
数据
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))