创建特定于我的代码的用户定义函数时出错

Errors creating user defined function specific to my code

以下代码块用于通过 2009:2012 分析印度特定邦所有地区的水化学成分 train 是父数据 Quality.Parameter 提供有关化学品的信息

state_1 <- subset(train,train$State.Name=="ANDHRA PRADESH")
ANDHRA <-   as.data.frame(table(state_1$District.Name,state_1$Quality.Parameter,state_1$Year),stringsAsFactors = FALSE)
str(ANDHRA)
names(ANDHRA) <- c("District.Name","CHEMICAL","YEAR","Freq")
an <- ggplot(ANDHRA,aes(ANDHRA$CHEMICAL,ANDHRA$Freq,fill=ANDHRA$District.Name))
an+geom_bar(stat="identity",position = "dodge")+facet_grid(.~ANDHRA$YEAR)+
labs(title="TREND of Chemical Compostion in Andhra Pradesh Villages",x="Chemicals",y="Number Of Cases",fill="Districts in Andhra Pradesh")

我有大约 27 个印度邦,想分析上面代码绘制的水中的化学物质。

table(train$State.Name)

   ANDHRA PRADESH ARUNACHAL PRADESH             ASSAM             BIHAR       CHATTISGARH      CHHATTISGARH 
         2888               612             79910             92336             25062              8815 
      GUJARAT           HARYANA  HIMACHAL PRADESH JAMMU AND KASHMIR         JHARKHAND         KARNATAKA 
         2092               262                88                67              3913             30824 
       KERALA    MADHYA PRADESH       MAHARASHTRA           MANIPUR         MEGHALAYA          NAGALAND 
         4800             14449             12480                14               427               618 
       ORISSA        PUDUCHERRY            PUNJAB         RAJASTHAN        TAMIL NADU           TRIPURA 
        68620                17              1056            131417              3164             26235 
UTTAR PRADESH       UTTARAKHAND       WEST BENGAL 
         9918                57             30101 

我创建了一个用户定义的函数,而不是为所有不同的状态一次又一次地编写代码

district_analysis<-function(a,b,d) {
b<- subset(train,train$State.Name=="a")
d<- as.data.frame(table(b$District.Name,b$Quality.Parameter,b$Year),stringsAsFactors = FALSE)
names(d) <- c("District.Name","CHEMICAL","YEAR","Freq")
an <- ggplot(d,aes(d$CHEMICAL,d$Freq,fill=d$District.Name))
an+geom_bar(stat="identity",position = "dodge")+facet_grid(.~d$YEAR)+labs(title="TREND of Chemical Compostion in" a "Villages",x="Chemicals",y="Number Of Cases",fill="Districts in" a) 
return(an) }

但是在尝试 运行 这个函数时我收到了这样的错误

> district_analysis<-function(a,b,d) {
+   b<- subset(train,train$State.Name=="a")
+     d<- as.data.frame(table(b$District.Name,b$Quality.Parameter,b$Year),stringsAsFactors = FALSE)
+     names(d) <- c("District.Name","CHEMICAL","YEAR","Freq")
+     an <- ggplot(d,aes(d$CHEMICAL,d$Freq,fill=d$District.Name))
+     an+geom_bar(stat="identity",position = "dodge")+facet_grid(.~d$YEAR)+labs(title="TREND of Chemical Compostion in" a "Villages",x="Chemicals",y="Number Of Cases",fill="Districts in" a) 
Error: unexpected symbol in:
"  an <- ggplot(d,aes(d$CHEMICAL,d$Freq,fill=d$District.Name))
an+geom_bar(stat="identity",position =   "dodge")+facet_grid(.~d$YEAR)+labs(title="TREND of Chemical Compostion in" a"
>   return(an) }
Error: unexpected '}' in "  return(an) }"

我无法找出原因请建议我修改代码。

您忘记粘贴字符串了。

+labs(title="TREND of Chemical Compostion in" a "Villages"

不行,应该是:

+labs(title=paste0("TREND of Chemical Compostion in ", a, " Villages")

使其成为一个字符串。 fill 参数也是如此,实际上我什至不确定你是否可以那样使用参数,它不应该在你的 labs() 函数中。

希望对您有所帮助。