gpt4 book ai didi

r - 如何用空格引用变量名?

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

ggplot2 ,如何引用带有空格的变量名?

为什么要qplot()ggplot()在带引号的变量名上使用时会中断吗?

例如,这有效:

qplot(x,y,data=a)

但这不会:
qplot("x","y",data=a)

我问是因为我经常有名称中带有空格的数据矩阵。例如,“国家收入”。 ggplot2 需要数据框;好的,我可以转换。所以我想尝试这样的事情:
qplot("State Income","State Ideology",data=as.data.frame(a.matrix))

那失败了。

而在基本 R 图形中,我会这样做:
plot(a.matrix[,"State Income"],a.matrix[,"State Ideology"])

哪个会起作用。

有任何想法吗?

最佳答案

答案:因为 'x' 和 'y' 被认为是长度为一的字符向量,而不是变量名。在这里您会发现为什么在 R 或任何其他编程语言中使用带空格的变量名是不明智的。

要引用带有空格的变量名称,您可以使用 hadleys 解决方案

a.matrix <- matrix(rep(1:10,3),ncol=3)
colnames(a.matrix) <- c("a name","another name","a third name")

qplot(`a name`, `another name`,data=as.data.frame(a.matrix)) # backticks!

或更正式的
qplot(get('a name'), get('another name'),data=as.data.frame(a.matrix))

后者可用于将变量名称作为字符串传递给例如循环结构的结构中:
for (i in c("another name","a third name")){
print(qplot(get(i),get("a name"),
data=as.data.frame(a.matrix),xlab=i,ylab="a name"))
Sys.sleep(5)
}

不过,最好的解决方案是不要使用带空格的变量名。

关于r - 如何用空格引用变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4551424/

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