【问题标题】:r.table not removing NA values from CSV filer.table 未从 CSV 文件中删除 NA 值
【发布时间】:2015-01-31 03:19:04
【问题描述】:

我知道这个问题之前已经回答了,但我仍然无法处理我的问题。

我正在使用此代码读取 CSV 文件并从中删除“NA”值。

read.table("001.csv", header = T, na.strings = "NA")

并且输出仍然包含“NA”值。下面是包含四个不同列的输出之一,1454 是行名。

*1454 2006-12-24 ,NA,NA,1

【问题讨论】:

  • 尝试在read.table中添加strip.white=TRUE
  • 如果您使用 read.table 而没有 sep="," 可能无法正确读取逗号分隔的文件。
  • 尝试添加它,但输出仍然没有变化
  • “na.strings”参数确定哪些值应该成为真正的缺失值。请注意 NA"NA" 不同,尽管上面的参数设置会使字符“NA”变成NA
  • 我尝试了 NA 和 "NA"

标签: r string csv missing-data read.table


【解决方案1】:

由于您已经在文件中读取,您可以使用 na.omit()complete.cases() 保留所有没有 NA 值的行。

na.omit() 与以下内容一起使用:

foo <- na.omit(foo)

例如,假设您有 data.frame foo:

> foo
   a b  c
1  1 1 NA
2  2 2 NA
3  3 3  3
4  4 4  3
5 NA 5  3
6  6 6  3

上面的代码将为您提供以下内容:

> foo <- na.omit(foo)
> foo
  a b c
3 3 3 3
4 4 4 3
6 6 6 3

或者,您可以使用complete.cases()

foo <- foo[complete.cases(foo),]

再次,假设您有 data.frame foo

> foo
   a b  c
1  1 1 NA
2  2 2 NA
3  3 3  3
4  4 4  3
5 NA 5  3
6  6 6  3

上面使用complete.cases()的代码将为您提供以下内容:

> foo <- foo[complete.cases(foo),]
> foo
  a b c
3 3 3 3
4 4 4 3
6 6 6 3

【讨论】:

  • 不工作尝试了这两种方法----“Complete.cases”的错误............ d
  • 使用赋值运算符&lt;-,而不是&lt;。此外,foo 是一个任意变量;每次看到时,使用您命名的 data.frame 代替 foo
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 2021-03-13
  • 1970-01-01
  • 2011-05-03
相关资源
最近更新 更多