[英]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.