寻找标准化所有变量,除了在R中使用dplyr的变量-找不到对象

寻找标准化所有变量,除了在R中使用dplyr的变量-找不到对象,r,dplyr,R,Dplyr,我正在使用nycflights13包中的航班数据集作为我遇到的一个问题的示例。我希望标准化一系列变量,除了一个(在下面的代码中,变量“year”) 库(nycflights13) 图书馆(tidyverse) 飞行量2%每个月变化(funs(比例),-年) has_名称(变量)中出错:未找到对象“年” 我做错了什么?接下来的问题是,如果我不想标准化多个变量,例如“年”、“月”和“日”,我该怎么办?您的参数顺序看起来是错误的。试试这个:flights%>%mutate\u at(vars(-ye

我正在使用nycflights13包中的航班数据集作为我遇到的一个问题的示例。我希望标准化一系列变量,除了一个(在下面的代码中,变量“year”)

库(nycflights13)
图书馆(tidyverse)
飞行量2%每个月变化(funs(比例),-年)
has_名称(变量)中出错:未找到对象“年”

我做错了什么?接下来的问题是,如果我不想标准化多个变量,例如“年”、“月”和“日”,我该怎么办?

您的参数顺序看起来是错误的。试试这个:
flights%>%mutate\u at(vars(-year,-time\u hour,-dest,-origin,-tailnum,-carrier),funs(scale))
(那些额外删除的变量是字符串)。更一般地说,您可以使用带有适当谓词函数的
mutate_if
来处理错误:请参见
?summary_each
:“对于标准评估版本(以_结尾),这些[vars参数]可以是表达式列表或字符向量。”因此,您可以例如执行
flights%>%mutate_each_(funs(scale),setdiff(“年”,名称(航班))
。这会导致下一个错误(
scale
需要数字值)。如果(是数字,scale)或
flights%>%mutate\u at(vars(-year,-month,-day),scale)
谢谢@chriss和@lukeA-
mutate\u at()
效果很好。请随意使用您的评论作为答案,我将投票表决。
library(nycflights13)
library(tidyverse)

flights2 <- flights %>% mutate_each_(funs(scale), -year)

Error in has_names(vars) : object 'year' not found