好的,我只是想根据标识符/字符列重命名嵌套 tibble 中的列:
MWE:
library(magrittr)
iris %>%
tibble::as_tibble() %>%
tidyr::nest(-Species) %>%
dplyr::mutate(
Species = as.character(Species),
data = purrr::map2(data, Species,
~dplyr::rename(.x, !!.y := Sepal.Width)))
但这会返回错误:
Error in quos(..., .named = TRUE) : object '.y' not found
我尝试使用 rlang
中的 ensym
以及 !!
和 :=
的各种组合成功。
也就是说,数据列中的第一个 tibble 应该将 Sepal.Width 列重命名为 setosa,第二个为 versicolor,最后一个 tibble Sepal.Widht 应该重命名为 virginica。
最佳答案
您可以不使用公式表示法:
library(magrittr)
irisNest <- iris %>%
tibble::as_tibble() %>%
tidyr::nest(-Species) %>%
dplyr::mutate(Species = as.character(Species))
f <- function(x,y) {dplyr::rename(x, !!y := Sepal.Width)}
irisCheck <- dplyr::mutate(irisNest,
data = purrr::map2(data, Species, f))
关于r - 在嵌套的 tibble R 中重命名数据列时,取消引用无法在 mutate 和 map2 中找到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55081289/