我正在尝试构建一个网格。以下是我尝试过的代码:
install.packages("gridExtra")
library(gridExtra)
p1 <- ggplot(aes(x = friend_count), data = pf) + geom_histogram()
p2 <- p1 + scale_x_log10()
p3 <- p1 + scale_x_sqrt()
grid.arrange(p1,p2,p3,ncol = 1)
当我运行时,我收到以下错误:
Error in if (is.waive(data) || empty(data)) return(cbind(data, PANEL = integer(0))) : missing value where TRUE/FALSE needed
我做错了什么?
答案 0 :(得分:1)
您没有提供数据框,结果证明问题完全可以重现:
ggplot(aes(x = friend_count), data = pf) + geom_histogram()
# Error in if (empty(data)) return(cbind(data, PANEL = factor())) :
# missing value where TRUE/FALSE needed
现在有数据框:
pf <- data.frame(friend_count = rpois(1000, 10))
ggplot(aes(x = friend_count), data = pf) + geom_histogram()
也许您打算写data = df
而不是data = pf
?在基数R中,pf
是一个函数,当一个函数提供一个函数代替数据时,就会出现错误:
ggplot(function() {}, aes(x)) + geom_histogram()
# Error in if (empty(data)) return(cbind(data, PANEL = factor())) :
# missing value where TRUE/FALSE needed
在任何一种情况下,这都与gridExtra
或grid.arrange
无关。