簡體   English   中英

忽略 NA,以便我可以為負數添加價值

[英]Ignore NAs so that I can add value to negative numbers

我有一列是睡眠小時數,它是通過從 got_to_slepp 列中減去一個 wake_up 列而創建的 - 但是,我得到的是負數,因為 difftime 沒有認識到 PM 值是第一天的,而 AM 數字是次日。

我意識到,從數學上講,如果我可以將 24 加到負值上,我就會得出正確的小時數。

但是,因為我有 NA 值,所以我只能用 0 或 NA 替換負值,並且當我嘗試添加 24 時出現錯誤。

例子:

df$hours_slept[df$hours_slept < 0] <- d5_df$hours_slept + 24 

這給了我錯誤:

NextMethod 中的錯誤(“[<-”):下標分配中不允許 NA

我嘗試添加.is.na 但這並沒有像我想象的那樣工作

謝謝

您可以像這樣使用ifelse

set.seed(1234)
df <- data.frame(hours_slept = sample(seq(-12,12, .1),20, replace=TRUE))
df$hours_slept[sample(1:20,8)] <- NA
df
#>    hours_slept
#> 1         -9.3
#> 2         -4.1
#> 3           NA
#> 4           NA
#> 5         11.5
#> 6         -1.0
#> 7          1.6
#> 8           NA
#> 9          4.5
#> 10          NA
#> 11         1.1
#> 12        -2.3
#> 13          NA
#> 14         9.3
#> 15          NA
#> 16        -5.1
#> 17        -4.2
#> 18         8.5
#> 19          NA
#> 20          NA
df <- transform(df, hours_slept=ifelse(hours_slept < 0, -hours_slept, hours_slept))
df
#>    hours_slept
#> 1          9.3
#> 2          4.1
#> 3           NA
#> 4           NA
#> 5         11.5
#> 6          1.0
#> 7          1.6
#> 8           NA
#> 9          4.5
#> 10          NA
#> 11         1.1
#> 12         2.3
#> 13          NA
#> 14         9.3
#> 15          NA
#> 16         5.1
#> 17         4.2
#> 18         8.5
#> 19          NA
#> 20          NA

代表 package (v2.0.1) 於 2022 年 7 月 26 日創建

暫無
暫無

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

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