na.omit似乎正在消除数据框中的负值?

时间:2019-02-27 19:33:58

标签: r

我试图找出我数据框中特定位置(CB,HK等)的不同温度范围, 看起来像这样:

'head(join)'

OTU_num location    date otus Depth   DO Temperature   pH Secchi.Depth
1 Otu0001       CB 03JUN09   21   0.0 7.60        21.0 3.68           NA
2 Otu0001       CB 03JUN09   21   0.5 8.27        16.4 3.68           NA
3 Otu0001       CB 03JUN09   21   1.0 7.65        14.9 3.68           NA
4 Otu0001       CB 03JUN09   21   1.5 5.26        12.2 3.25           NA
5 Otu0001       CB 03JUN09   21   2.0 4.01        10.1 3.25           NA

我正在使用以下方法计算范围:

ranges <- join %>% 
  group_by(location) %>%
  na.omit %>%
  mutate(min=min(Temperature), max=max(Temperature), subtract=min-max) %>%
  arrange(subtract)

有些温度值是“ NA”,因此我使用了na.omit,但是它似乎正在取负值?所以我得到的范围是错误的。

location min max subtract
   MA      0.1  27.3    -27.2

我使用范围功能对其中一个位置进行了仔细检查(有很多,我不想为每个位置使用范围)

    MA <- subset(join, location=="MA")
range(MA$Temperature, na.rm = TRUE)
[1] -2.2 27.6

为什么值不同?任何帮助表示赞赏!!!

1 个答案:

答案 0 :(得分:3)

我认为您应该使用join %>% filter(!is.na(Temperature)),因此只会删除具有NA温度的行。