gpt4 book ai didi

r - 将变量粘贴到 mutate_at 函数中以改变特定列(如果存在)

转载 作者:行者123 更新时间:2023-12-02 10:39:09 26 4
gpt4 key购买 nike

我有一些数据,我正在尝试使用 mutate_at 根据列名称来改变一些列。但是我不断收到以下错误:

Error: No tidyselect variables were registered

如何将一些变量粘贴到 mutate_at 中?

图书馆:

library(dplyr)
library(tidyr)

代码:

vars_to_match <- c("Petal.Length_virginica", "Sepal.Length_virginica", "Sepal.Width_setosa")

my_Data %>%
mutate_at(
.var = matches(paste(vars_to_match, collapse = "|")),
.funs = c("Scale_Me")
)

数据:

data(iris)
my_Data <- iris %>%
mutate(row = row_number()) %>%
pivot_wider(names_from = Species, values_from = Sepal.Length:Petal.Width)

功能:

Scale_Me <- function(x){
(x - mean(x, na.rm = TRUE)) / sd(x, na.rm = TRUE) # Standard Normal Distribution Function
}

最佳答案

您需要使用 vars() 进行引用,而不是 .vars,即

library(dplyr)

my_Data %>%
mutate_at(
vars(matches(paste(vars_to_match, collapse = "|"))),
.funs = c("Scale_Me")
)

这给出了,

A tibble: 150 x 13
row Sepal.Length_setosa Sepal.Length_versicolor Sepal.Length_virginica Sepal.Width_setosa Sepal.Width_versicolor Sepal.Width_virginica Petal.Length_setosa Petal.Length_versicolor Petal.Length_virginica Petal.Width_setosa Petal.Width_versicolor Petal.Width_virginica
<int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 5.1 NA NA 0.190 NA NA 1.4 NA NA 0.2 NA NA
2 2 4.9 NA NA -1.13 NA NA 1.4 NA NA 0.2 NA NA
3 3 4.7 NA NA -0.601 NA NA 1.3 NA NA 0.2 NA NA

关于r - 将变量粘贴到 mutate_at 函数中以改变特定列(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58937117/

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