R:平均列的语法问题

我有一个带有NDVI数据和森林类型的数据集,我的NDVI列充满了NaN。我试图平均2个NDVI列(植被指数从0-1),然后按森林类型计算平均值。我的方法是创建第三列,然后计算平均值。就像这样。

  data_full %>%
  mutate(sum = sum(meanNDVIyear11,meanNDVIyear12, na.rm=TRUE)) %>% 
  mutate(sum = sum/2) %>% 
  group_by(OriginalForest) %>% 
  summarise(meanNDVI = mean(sum,na.rm=TRUE))

  The output is  simply wrong:
# A tibble: 4 x 2
  OriginalForest meanNDVI
  <chr>             <dbl>
1 bushland           292.
2 Conifer            292.
3 Decidious          292.
4 Sclerofilous       292.

相反,我可以用一种非常讨厌的方式来做。

data_full %>%
group_by(OriginalForest) %>%
summarise(meanNDVI = mean(((meanNDVIyear12+meanNDVIyear11)/2),na.rm=TRUE)) 

而且它的工作原理是:

# A tibble: 4 x 2
  OriginalForest meanNDVI
  <chr>             <dbl>
1 bushland          0.462
2 Conifer           0.533
3 Decidious         0.479
4 Sclerofilous      0.557

我很想知道我在第一种方法中做错了什么,这显然是更优雅的!

解决方案:

在第一种方法中,它是以 sum 的整个双列,从而使 mean 同为 sum 取多个参数的总和。

data(mtcars)
library(dplyr)
mtcars %>%
    mutate(sum = sum(mpg, cyl))

#                   mpg cyl  disp  hp drat    wt  qsec vs am gear carb   sum
#Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 840.9
#Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 840.9
#Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 840.9
#Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 840.9
#...

with(mtcars, sum(mpg) + sum(cyl))
#[1] 840.9

给TA打赏
共{{data.count}}人
人已打赏
解决方案

Apache poi java。在另一台电脑上运行JAR文件时,文档中不显示图像。

2022-4-21 12:09:10

解决方案

Python3错误。"pygame.error: video system not initialized"

2022-4-21 12:09:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索