簡體   English   中英

使用 na.rm = TRUE 時總結返回 -inf

[英]summarise returning -inf when using na.rm = TRUE

我最近構建了一個簡單的 R 腳本來總結三個不同的數據框。 自從更新到最新版本的 R 和 R Studio 后,我遇到了以前從未見過的輸出,在 dplyr 中僅對其中一個數據幀使用匯總函數(其他兩個都很好)。 我還收到了一系列我不熟悉的警告。 請注意,在更新之前,我完全按照編寫的方式運行腳本,任何數據框都沒有問題。

有問題的數據框稱為VO2,其設置如下:

Name        Sex       VO2
AthleteA    M         50
AthleteA    M         52
AthleteA    M         NA
AthleteB    M         49
AthleteB    M         56
AthleteB    M         47 
AthleteC    M         42
AthleteC    M         NA
AthleteC    M         41 
AthleteD    M         NA
AthleteD    M         NA
AthleteD    M         NA 

我運行的代碼是:

Test.Summary.VO2 = VO2 %>% group_by(Name, Sex) %>% 
summarise(Best.Score = max(VO2, na.rm=TRUE))

此代碼生成以下摘要:

Name       Sex     Best.Score
AthleteA    M        52
AthleteB    M        56
AthleteC    M        42
AthleteD    M        -Inf

-Inf 值在輸出中是全新的。 我無法弄清楚為什么它現在出現在只有 NA 的情況下。

如上所述,我對第二個數據框有完全相同的布局並運行相同類型的摘要。 這里一切正常。 當我用 na.rm=TRUE 進行總結時,它會刪除 NA 案例而不用 -Inf 值替換 NA 案例。

更不尋常的是,當我使用以下方法查看數據框時:

View(Test.Summary.VO2)

我收到以下一系列警告消息:

There were 38 warnings (use warnings() to see them)
warnings()
Warning messages:
1: Unknown or uninitialised column: 'Quad'.
2: Unknown or uninitialised column: 'Quad'.
3: Unknown or uninitialised column: 'Quad'.
4: Unknown or uninitialised column: 'Quad'.

稍后在腳本中,我生成了一個名為“Quad”的新變量。 但是即使在我清除環境並重新啟動 R Studio 后,上述警告也會出現。 我什至嘗試重命名 .csv 文件並使用不同的數據框名稱導入。 這幾乎就像腳本中稍后生成的“Quad”列在環境中的某個地方徘徊。

我真的不知道這里可能會發生什么。

我希望 Stack 上的一位 R 專家可以為我提供有關如何解決此問題的想法。

謝謝你的考慮。

?max

數字空集的最小值和最大值是 +Inf 和 -Inf(按此順序!),它們確保傳遞性,例如min(x1, min(x2)) == min(x1, x2) 對於數字x max(x) == -Infmin(x) == +Inf只要length(x) == 0 (如果需要,在刪除缺失值之后)。 但是,如果所有並行元素都是NA即使對於na.rm = TRUEpmaxpmin也會返回NA

組 D 沒有任何非 NA 值,因此max返回空集的值。

遲到了,但是當沒有要最大化的值時,解決方案是返回 NA 而不是 Inf。 這可以通過 hablar 包的 s 函數來完成。

library(dplyr)
library(hablar)

VO2 %>% 
  group_by(Name, Sex) %>% 
  summarise(Best.Score = max(s(VO2)))

這給了你:

  Name     Sex   Best.Score
  <chr>    <chr>      <int>
1 AthleteA M             52
2 AthleteB M             56
3 AthleteC M             42
4 AthleteD M             NA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM