R 打印ggmap时在ggplot2中添加geom_文本时出现问题

R 打印ggmap时在ggplot2中添加geom_文本时出现问题,r,ggplot2,unary-operator,R,Ggplot2,Unary Operator,我的问题是当我们在ggplot中添加geom_text()时,它会给我一个错误。我参考了下面的链接,但无法解决我的问题 访问的问题: 然后,如果取消对geom_text()函数的注释并重新运行代码,则会出现以下错误: Error in +geom_text(aes(x = long, y = lat, label = Abbrev), data = centres, : invalid argument to unary operator 如果您选择回答,请留下一个简短的解释,说明为什么

我的问题是当我们在ggplot中添加geom_text()时,它会给我一个错误。我参考了下面的链接,但无法解决我的问题

访问的问题:

然后,如果取消对geom_text()函数的注释并重新运行代码,则会出现以下错误:

Error in +geom_text(aes(x = long, y = lat, label = Abbrev), data = centres,  : 
invalid argument to unary operator
如果您选择回答,请留下一个简短的解释,说明为什么会发生此错误。我会很感激的


谢谢。

一个问题与
geom\u text
行开头的+符号有关。将+符号移动到上一行的末尾。但是仍然会产生一个错误。我认为问题在于两个数据帧中的通用变量名。将
data
aes
命令从
ggplot
移到
geom\u polygon

library(ggplot2)
library(plyr)
library(maps)
library(Hmisc)
library(stringi)
data(state)
states <- map_data("state")
colnames(states)[5] <- "State"
states$State <- stri_trans_totitle(states$State)
df <- data.frame(state.x77,
              State = state.name,
              Abbrev = state.abb,
              Region = state.region,
              Division = state.division
)  

df2 <- merge(states,df,by="State")
df2 <- df2[order(df2$order),]
mid_range <- function(x) mean(range(x,na.rm=TRUE))
centres <- ddply(df2, .(Abbrev),
             colwise(mid_range,.(lat,long,Population)))


gg <- function(Cols) {
df2$Cols <- df2[,Cols]
ggplot()+                                                          # Changes made here
 geom_polygon(data = df2, aes(long,lat,fill=Cols,group=group)) +   # and here.
 geom_text(aes(x=long,y=lat,label=Abbrev), data = centres, size=4)
}

gg("Population")
库(ggplot2)
图书馆(plyr)
图书馆(地图)
图书馆(Hmisc)
图书馆(stringi)
数据(状态)
州
Error in +geom_text(aes(x = long, y = lat, label = Abbrev), data = centres,  : 
invalid argument to unary operator
library(ggplot2)
library(plyr)
library(maps)
library(Hmisc)
library(stringi)
data(state)
states <- map_data("state")
colnames(states)[5] <- "State"
states$State <- stri_trans_totitle(states$State)
df <- data.frame(state.x77,
              State = state.name,
              Abbrev = state.abb,
              Region = state.region,
              Division = state.division
)  

df2 <- merge(states,df,by="State")
df2 <- df2[order(df2$order),]
mid_range <- function(x) mean(range(x,na.rm=TRUE))
centres <- ddply(df2, .(Abbrev),
             colwise(mid_range,.(lat,long,Population)))


gg <- function(Cols) {
df2$Cols <- df2[,Cols]
ggplot()+                                                          # Changes made here
 geom_polygon(data = df2, aes(long,lat,fill=Cols,group=group)) +   # and here.
 geom_text(aes(x=long,y=lat,label=Abbrev), data = centres, size=4)
}

gg("Population")