相关疑难解决方法(0)

ggplot2 aes_string()无法处理以数字开头或包含空格的名称

如果a的列名data.frame以数字开头,或者有空格,则aes_string()无法处理它们:

foo=data.frame("1st Col"=1:5, "2nd Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2])) + geom_point()
# Error in parse(text = x) : <text>:1:2: unexpected symbol
# 1: 1st
#     ^

foo=data.frame("First Col"=1:5, "Second Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2])) + geom_point()
# Error in parse(text = x) : <text>:1:7: unexpected symbol
# 1: First Col
#          ^

foo=data.frame("First_Col"=1:5, "Second_Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2]))+geom_point()
# Now it works
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法在列名中有空格,或者它们是以数字开头的,我们可以在ggplot2中使用它们吗?请考虑我们可能不知道列名称,因此请避免提供具有常量列名称的示例 - 如下所示:

aes_string(x=`1st Col`, y=`2nd Col`)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

11
推荐指数
3
解决办法
5881
查看次数

标签 统计

ggplot2 ×1

r ×1