【发布时间】:2026-01-31 23:35:02
【问题描述】:
我有一个 data.matrix df,我想过滤掉 col1 列的 NA 值。我测试了不同的方法,但总是出错。
列中的唯一值:
> unique(df$test_data$col1)
[1] "not_finished" "finished" NA
这是我尝试过的:
df %>% filter(!is.na(test_data$col1))
错误:
data.matrix(data) 中的错误: 'list' 对象不能被强制输入 'double'
或
df[!is.na(test_data$col1)]
错误:
test_data$col1 中的错误: $ 运算符对原子向量无效
或
df[!is.na(test_data.col1)]
错误:
[.data.frame(df, !is.na(test_data.col1)) 中的错误: 找不到对象“test_data.col1”
更新:
dput(df$test_data)
structure(list(col1 = c("not_finished", "finished",
"not_finished", NA, NA), incident = c("NA",
"NA", "INC-6033", "NA", "NA"), reason = c("NA", "NA", "False Positive",
"NA", "NA")), class = "data.frame", row.names = c(NA, 100L))
【问题讨论】:
-
你能提供
dput(df)吗? - 很难确切地知道对象的结构在这里。 -
@thelatemail:请查看我的更新。 data.matrix 很大。因此我只从
df$test_data中提取了5条记录。 -
也许可以试试
df$test_data[which(!is.na(df$test_data$col1)),]
标签: r