创建特定于我的代码的用户定义函数时出错
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() 函数中。
希望对您有所帮助。
以下代码块用于通过 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() 函数中。
希望对您有所帮助。