我在完成一项看似简单的任务时遇到了麻烦。我正在为剧情创作运行一个dlply函数,我想让标题从两个变量调用项目" SITE"和" SP"。
SITE和SP都是因素,都是字符串。
这是我的代码:
plot.title<-"Index"
plot.subtitle<-SUBTOT_DATE$SP
p <- dlply(SUBTOT_DATE, .(SITE, SP),function(x){
ggplot(x, aes(YEAR, SUMIA, group=SITE))+
geom_point(size=3, color="red2") +
geom_line(size=1, color="red2") +
ggtitle(ggtitle(bquote(atop(.(plot.title), atop(italic(.(plot.subtitle)), "")))) )+
theme_bw()+
xlab("Year") +
ylab("Sum IA")+
theme(legend.direction ="vertical",legend.position = "bottom")+
guides(color=guide_legend(ncol=2))
})
我的问题来自这段代码:
plot.subtitle<-SUBTOT_DATE$SP
当我调用SUBTOT_DATE $ SP时,它返回一个数字而不是字符串。
当我调用paste(SUBTOT_DATE $ SITE,SUBTOT_DATE $ SP)时,它只会以我想要的方式将两个变量的前两项作为标题返回,但对于所有绘图它都保持不变。
当我调用粘贴(SUBTOT_DATE $ SITE [x],SUBTOT_DATE $ SP [x])时出现此错误:
Error in `[.default`(SUBTOT_DATE$SITE, x) : invalid subscript type 'list'
当我调用粘贴(SUBTOT_DATE $ SITE [[x]],SUBTOT_DATE $ SP [[x]])时出现此错误:
Error in `[[.default`(SUBTOT_DATE$SITE, x) : attempt to select more than one element
我做错了什么?当我将paste()函数放入函数(x)时,它不再起作用了。
这就是我希望在我的情节中获得的标题:
> paste(SUBTOT_DATE$SITE," - ",SUBTOT_DATE$SP)[1:5]
[1] "RNN066-Valbois Vignes parc2bas - Aglais io (Linnaeus, 1758)"
[2] "RNN066-Valbois Vignes parc3haut - Aglais io (Linnaeus, 1758)"
[3] "RNN066-Valbois Pel temoin - Aglais io (Linnaeus, 1758)"
[4] "RNN066-Valbois Vignes parc3bas - Aglais io (Linnaeus, 1758)"
[5] "RNN066-Valbois Vignes parc3bas - Aglais io (Linnaeus, 1758)"
由于不明原因,它只用数字1重命名所有图。
感谢您的帮助。
答案 0 :(得分:0)
baptiste回答:
正确的语法是:
paste(x$SITE,x$SP)