gpt4 book ai didi

r - 将变量或表达式传递给 `aes`

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

我编写了用因子变量绘制条形图的函数。当我运行我的函数时,显示了错误消息。
eval(expr,envir,enclos)中的错误:找不到对象“dset”
如何修改我的函数?谢谢!

x1=factor(c("f","m","f","f","m","f","f","m","f","m"))
x2=factor(c("1","2","1","1","1","2","2","2","1","1"))
y1=c(10,11,12,13,14,15,16,17,18,19)
y2=c(10,12,12,13,14,15,15,17,18,19)
y3=c(10,12,12,14,14,15,15,17,18,19)
bbb<- data.frame(x1,x2,y1,y2,y3)


myfunc<-function(dataframe){
library(ggplot2)
dset<-dataframe
for (i in 1:ncol(dset)){
if (is.factor(dset[,i])==T){
p3<-ggplot(data=dset, aes(x=dset[,i]))
p3<-p3+geom_bar(colour='blue',fill='blue')
print(p3)
}
}
}

myfunc(dataframe=bbb)

最佳答案

转换为答案,因为它似乎很有用
aes旨在评估提供的数据集范围内未加引号的列名称(在您的情况下为 dset)。 dset[, i]不是列名,而是一整列 aes不是为了处理。

幸运的是,您可以将引用的列名解析为 aes_string .因此,使用

aes_string(x = names(dset)[i])

代替
aes(x = dset[, i])

应该可以解决你的问题

关于r - 将变量或表达式传递给 `aes`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26699418/

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