gpt4 book ai didi

r - mutate_at() : must be a 1d atomic vector or a list

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

我有以下数据

df <- tibble(a = rnorm(10,0,1), b = a+6, c = b/2)
df %>% mutate_at(vars(a, b), scale) %>% GGally::ggpairs()

这返回了错误

Error: Column a must be a 1d atomic vector or a list



进一步挖掘表明 str()更改为 mutate_at() .
> df %>% mutate_at(vars(a, b), scale) %>% str
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 10 obs. of 3 variables:
$ a: num [1:10, 1] -1.274 -0.81 0.362 1.374 1.06 ...
..- attr(*, "scaled:center")= num 0.106
..- attr(*, "scaled:scale")= num 0.813
$ b: num [1:10, 1] -1.274 -0.81 0.362 1.374 1.06 ...
..- attr(*, "scaled:center")= num 6.11
..- attr(*, "scaled:scale")= num 0.813
$ c: num 2.54 2.72 3.2 3.61 3.48 ...

我如何使用 df在我通过 mutate_at() 更改变量之后?例如,我如何使用 GGally::ggcoef用我的缩放数据?

最佳答案

scale()函数为您的向量添加了额外的属性,以便稍后可以取消缩放您的向量。但这似乎是骗人的ggpairs不认为它是一个数字向量。您可以制作自己的包装器来清理额外的属性

simple_scale <- function(...) as.numeric(scale(...))

然后你可以做
df %>% mutate_at(vars(a, b), simple_scale) %>% GGally::ggpairs()

关于r - mutate_at() : must be a 1d atomic vector or a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49161069/

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