gpt4 book ai didi

r - 使用索引而不是名称指定列

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

我编写了一个函数来使用 ggplot 获取比例堆积条形图功能。现在我在这个 ID 中使用列名.

PropBarPlot<-function(df, mytitle=""){
melteddf<-melt(df, id="ID", na.rm=T)
ggplot(melteddf, aes(ID, value, fill=variable)) +
geom_bar(position="fill") +
theme(axis.text.x = element_text(angle=90, vjust=1)) +
labs(title=mytitle)
}

我想让它通用。所以我想使用列索引而不是列名。我试着做这样的事情。
PropBarPlot<-function(df, mytitle=""){
melteddf<-melt(df, id=names(df)[1], na.rm=T)
ggplot(melteddf, aes(names(df)[1], value, fill=variable)) +
geom_bar(position="fill") +
theme(axis.text.x = element_text(angle=90, vjust=1)) +
labs(title=mytitle)
}

但是没有用。有人可以建议我怎么做吗??

谢谢。

最佳答案

正如@baptiste 所指出的,你应该使用 aes_string()而不是 aes()在定义 x 和 y 值时使用字符串。你也应该把 valuevariable内引号。

PropBarPlot<-function(df, mytitle=""){
melteddf<-melt(df, id=names(df)[1], na.rm=T)
ggplot(melteddf, aes_string(x=names(df)[1],y= "value", fill="variable")) +
geom_bar(position="fill") +
theme(axis.text.x = element_text(angle=90, vjust=1)) +
labs(title=mytitle)
}

关于r - 使用索引而不是名称指定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16187091/

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