Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R、 mapply,ggplot:EXPR必须是长度为1的向量_R_Ggplot2_Gridextra_Mapply - Fatal编程技术网

R、 mapply,ggplot:EXPR必须是长度为1的向量

R、 mapply,ggplot:EXPR必须是长度为1的向量,r,ggplot2,gridextra,mapply,R,Ggplot2,Gridextra,Mapply,我正在尝试使用ggplot和gridExtra绘制表的子集。 但是我在下面的错误中出错了,EXPR必须是长度为1的向量 我能想出任何一个侧面的台阶。任何帮助都是有用的 下面是一个我尝试执行的小示例: # the table dt1 <- data.table(parkName=rep(c("Zone A","Zone B", "Zone C" , "Zone D"),5), boundary=rep(0:1,10),v=1:20, w=rnorm(20))[] # criteria fo

我正在尝试使用ggplot和gridExtra绘制表的子集。 但是我在下面的错误中出错了,EXPR必须是长度为1的向量

我能想出任何一个侧面的台阶。任何帮助都是有用的

下面是一个我尝试执行的小示例:

# the table
dt1 <- data.table(parkName=rep(c("Zone A","Zone B", "Zone C" ,
"Zone D"),5), boundary=rep(0:1,10),v=1:20, w=rnorm(20))[]

# criteria for subsetting the table
dt2 <- data.table(zone1 = c("Zone A","Zone B"), zone2 =c("Zone B","Zone C"))

# function for subsetting the table and plotting
p <- function(sd1,sd2){
dlist <- dt1[parkName==sd1 | parkName==sd2]    

b <- dt1[parkName %in% dlist]
a <- ggplot(
       b,
       aes(v,w)) + geom_line()
return(a)
}

mplot <- mapply(p,dt2[,zone1],dt2[,zone2])
cairo_pdf("myplot1.pdf")
do.call(marrangeGrob, c(mplot, list(nrow=2, ncol=2)))
dev.off()

# results
Error in switch(ct, ggplot = ggplotGrob(grobs[[ii.table]]), trellis =
 latticeGrob(grobs[[ii.table]]),  : EXPR must be a length 1 vector
#表格
dt1改变


mplot没有运行您的代码,但是
dt1[parkName==sd1&parkName==sd2]
看起来有点可疑,因为您要求
parkName
成为sd1和sd2-也许您的意思是?然后您可以使用
dt1[parkName%在%c(sd1,sd2)]
。我的错误,谢谢。我的意思是
dt1[parkName==sd1 | parkName==sd2]
。谢谢,我会记住的。
mplot <- mapply(p,dt2[,zone1],dt2[,zone2])
mplot <- mapply(p,dt2[,zone1],dt2[,zone2], SIMPLIFY=FALSE)
mplot <- Map(p,dt2[,zone1],dt2[,zone2])