gpt4 book ai didi

r - 使用标准评估从 tidyr 包中从 Gather() 中排除列

转载 作者:行者123 更新时间:2023-12-04 12:11:13 25 4
gpt4 key购买 nike

我试图从 gather() 中排除一列来自使用标准评估的 tidyr 包。

使用非标准评估,这可以正常工作:

mtcars_df <- head(mtcars[, c("mpg", "hp", "cyl")])
tidyr::gather(mtcars_df, key, val, -cyl)

但是,使用标准评估,以下任何一项都不起作用并且都返回错误:
tidyr::gather_(mtcars_df, "key", "val", -"cyl")
tidyr::gather_(mtcars_df, "key", "val", -cyl)

作为一种解决方法,我尝试使用 select()辅助函数 contains() ,但这只是返回了原始 data.frame , mtcars_df :
tidyr::gather_(mtcars_df, "key", "val", -dplyr::contains("cyl"))

如何使用标准评估以这种方式排除列?这里发生了什么?

最佳答案

根据 tidyr github 问题 #109: gather_ no longer supports dropping a column? ,

gather_() only works with character vectors. - Hadley Wickham, 2015



你可以试试
library(dplyr)
mtcars_df %>% tidyr::gather_("key", "val", setdiff(names(.), "cyl"))

关于r - 使用标准评估从 tidyr 包中从 Gather() 中排除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42285006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com