我正在尝试使用 mutate
创建一个包含基于特定列的值的新列 .
示例最终数据框(我正在尝试创建 new_col
):
x = tibble(colA = c(11, 12, 13),
colB = c(91, 92, 93),
col_to_use = c("colA", "colA", "colB"),
new_col = c(11, 12, 93))
我想做的事情如下:
x %>% mutate(new_col = col_to_use)
除了列内容,我想将它们转换为变量 . 我开始时:
col_name = "colA"
x %>% mutate(new_col = !!as.name(col_name))
这适用于静态变量 . 但是,我无法更改变量来表示列 . 如何根据其他列的内容获取列名?
这个问题基本上与此相反:dplyr - mutate: use dynamic variable names . 我无法使解决方案适应我的问题 .
2 回答
我们可以使用purrr包中的
imap_dbl
和pluck
来完成此任务 .我不确定如何单独使用
tidyverse
成语(虽然我假设's a way). But here'是一个使用apply
的方法:或者,将
apply
放在mutate
内: