提问人:Jagoda Pokryszka 提问时间:11/2/2023 最后编辑:MaëlJagoda Pokryszka 更新时间:11/2/2023 访问量:27
在 R 中使用日期,charToDate(x) 中的错误
Working with dates in R, Error in charToDate(x)
问:
我使用润滑剂将数据框中的日期转换为标准格式“YYYY-MM-DD”:
df$diagnosis_year <- lubridate::ymd(df$diagnosis_year, truncated = 2L)
现在我想计算 df$diagnosis_year != NA 和另一个参数为“1”的行数。
我试过这个:
nrow(df[df$diagnosis_year != 'NA' & df$smoker_status == '1', ])
但总是收到错误消息:
***Error in charToDate(x) :
Zeichenkette ist nicht in einem eindeutigen Standardformat***
我将非常感谢您的帮助!!
我要重现的数据框:
df = data.frame (diagnosis_year = c("1999", "2005", "1998", "2022", "2001"),
smoker_status = c("1", "0", "1", "1", "99"), sex = c("2", "2", "1", "2", "1")
)
答:
1赞
Maël
11/2/2023
#1
当您想检查是否缺少元素时,不要使用 ,而是使用内置函数:== NA
is.na
nrow(df[is.na(df$diagnosis_year) & df$smoker_status == '1', ])
#[1] 0
要理解您的错误,请注意,首先在 R 中注明缺失值,而不是 ,即 不是字符串(字符),而是特殊运算符(检查)。通过将日期与字符串进行比较,您将强制将要转换为日期的字符串转换为日期,以便进行比较;但这当然是行不通的,因此是错误的。NA
'NA'
NA
?NA
!=
!=
'NA'
评论