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