R ggplot2警告缺少行/值,并删除部分绘图

R ggplot2警告缺少行/值,并删除部分绘图,r,plot,ggplot2,dplyr,missing-data,R,Plot,Ggplot2,Dplyr,Missing Data,我有一个R数据框,看起来像这样: > glimpse(spottingIntensity) Observations: 28 Variables: 5 $ nClassifications <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,... $ nPhotosClassified <int> 45816, 25252, 1

我有一个R数据框,看起来像这样:

> glimpse(spottingIntensity)
Observations: 28
Variables: 5
$ nClassifications       <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,...
$ nPhotosClassified      <int> 45816, 25252, 12327, 5286, 2327, 1231, 713, 565, 447, 435, 318, 227, 192, 156,...
$ totalClassifiedPhotos  <int> 95781, 95781, 95781, 95781, 95781, 95781, 95781, 95781, 95781, 95781, 95781, 9...
$ proportionOfClassified <dbl> 4.783412e-01, 2.636431e-01, 1.286998e-01, 5.518840e-02, 2.429501e-02, 1.285224...
$ cumulativeProportions  <dbl> 0.4783412, 0.7419843, 0.8706842, 0.9258726, 0.9501676, 0.9630198, 0.9704639, 0...
这给了我以下警告:

Warning messages:
1: Removed 18 rows containing missing values (position_stack). 
2: Removed 18 rows containing missing values (geom_text).
这个输出:

我看到在图中,
nClassifications=10
的列没有显示,即使它的数据存在于我的原始数据框中

我检查了数据框,对于
nClassifications=24,27,30,31
,我确实有一些“缺失行”,但对于
nClassifications=10
,我没有

因此:

  • 为什么
    nClassifications=10
    图中的条形图没有显示出来?我该如何解决这个问题?(我希望有一个高度与
    nClassifications=9
    相似的条)


  • 如何以编程方式“填充/完成”数据框,以便
    nClassifications=24、27、30、31有相应的行?在这种情况下,
    nphotosclassed Hmmm,不确定它是否那么简单,但您能否尝试使用不同的限制,以防由于绘图中缺少空间而无法显示条形图?酒吧在你的最后一点周围需要一些空间/区域。类似于
    limits=c(NA,10.5)
    ?对于2,请参见
    tidyr::complete
    ,对于1,您可以将“x”切换为因子而不是数字(可能使用类似于
    forcats::fct\u的命令来获得正确的顺序),并将限制设置为您想要的值,如
    limits=as.character(1:10)
    scale\u x\u discrete
    中的
    。警告与以下事实有关:您有NA值,
    ggplot
    无法使用/打印它们,因此它将它们排除在外。您可以在打印数据集之前将NAs从数据集中排除,或者在可能的情况下找到一种合理的方式来填充这些NAs。您可以使用comamnd@aosmith建议的值来填充它们,但用于替换它们的值取决于您和您的应用程序。假设您的数据集名称为
    dt
    请使用
    dt[!complete.cases(dt),]
    查看列中某处具有NA值的整行。因此,
    dt[complete.cases(dt),]
    将删除带有NAs的所有行,然后您可以绘制此.Hmmm,不确定它是否那么简单,但您能否尝试使用不同的限制,以防由于绘图中缺少空间而无法显示条形图?酒吧在你的最后一点周围需要一些空间/区域。类似于
    limits=c(NA,10.5)
    ?对于2,请参见
    tidyr::complete
    ,对于1,您可以将“x”切换为因子而不是数字(可能使用类似于
    forcats::fct\u的命令来获得正确的顺序),并将限制设置为您想要的值,如
    limits=as.character(1:10)
    scale\u x\u discrete
    中的
    。警告与以下事实有关:您有NA值,
    ggplot
    无法使用/打印它们,因此它将它们排除在外。您可以在打印数据集之前将NAs从数据集中排除,或者在可能的情况下找到一种合理的方式来填充这些NAs。您可以使用comamnd@aosmith建议的值来填充它们,但用于替换它们的值取决于您和您的应用程序。假设您的数据集名称为
    dt
    请使用
    dt[!complete.cases(dt),]
    查看列中某处具有NA值的整行。因此,
    dt[complete.cases(dt),]
    将删除带有NAs的所有行,然后您可以绘制该行。
    Warning messages:
    1: Removed 18 rows containing missing values (position_stack). 
    2: Removed 18 rows containing missing values (geom_text).