我真的是R的新手,所以如果有一个我可以轻松理解的解决方案,那就太好了。
我有一个包含两列的数据集,一个日期和一个价格,在某些情况下价格可以为空。
我尝试使用na.omit
,complete.cases
删除这些值,但似乎它们仅适用于NA值。
行看起来像这样
2017-05-31 12615.059570
2017-06-01 12664.919922
2017-06-02 12822.940430
2017-06-05 null
那么有没有办法删除数据框中的空值?
答案 0 :(得分:0)
由于您没有使用dput()
提供示例数据,所以我不知道您的NULL值的格式(是文本的“真实” NULL吗?)...
当您的NULL为字符值时,下面的代码应该可以工作。
library(data.table)
data <- fread("
2017-05-31 12615.059570
2017-06-01 12664.919922
2017-06-02 12822.940430
2017-06-05 NULL")
data[ data == "NULL"] <- NA
data[ complete.cases(data),]
# V1 V2
# 1: 2017-05-31 12615.059570
# 2: 2017-06-01 12664.919922
# 3: 2017-06-02 12822.940430
答案 1 :(得分:0)
您还可以通过以下方式删除该行:查找包含“ null”的行,然后重新定义data.frame()
,而不添加该行:
代码:
df <- df[!df$V2 == "null", ]
# "!" negates, so this statement represents: keep all rows in which V2 is not equal to "null"
V1 V2
1 2017-05-31 12615.059570
2 2017-06-01 12664.919922
3 2017-06-02 12822.940430
数据:
df <- read.table(text =
"2017-05-31 12615.059570
2017-06-01 12664.919922
2017-06-02 12822.940430
2017-06-05 null", header = F, sep = "", stringsAsFactors = F)
V1 V2
1 2017-05-31 12615.059570
2 2017-06-01 12664.919922
3 2017-06-02 12822.940430
4 2017-06-05 null