【问题标题】:R. replacing null value representation with NAR. 用 NA 替换空值表示
【发布时间】:2016-07-18 17:15:03
【问题描述】:

我已经尝试了我在 stackoverflow 上找到的关于这个主题的所有方法,但没有任何效果。

这是我的名为 TEST 的数据集的示例:

x2000 x2001 x2002

100   1200   230
200   2002   280
:     1980   :  

":" 表示缺失值。问题是我不能用 R-accepted NA 替换这个冒号。

我尝试过的:

sum(TEST %in c(":"))
returns: [1] 0

TEST[TEST==":"] <-NA #does nothing

我尝试将文件另存为 .csv,在 excel 中将值替换为“NA”,但它仍然什么都不做。列不是因子。如果该列包含“:”的值,则该列是“chr”,否则它是“int”。

【问题讨论】:

  • 你应该给出一个可重现的例子。 TEST[TEST==":"] &lt;-NA 应该可以工作,但如果没有可重复的示例,我们无法告诉您为什么不工作。
  • 正如@RichardScriven 所指出的,代码应该可以工作。我怀疑问题在于您如何导入数据。也许您正在阅读带有read.csv() 的文件?如果是,请尝试改用read.table(filename, header=TRUE)

标签: r csv na


【解决方案1】:

可能最简单的方法是在使用read. 系列函数之一读取数据时设置na.strings 方法。下面是一个带有 read.table 的示例数据:

df <- read.table(header=T, text="x2000 x2001 x2002
100   1200   230
200   2002   280
:     1980   :  ", na.strings=":")

返回

df
  x2000 x2001 x2002
1   100  1200   230
2   200  2002   280
3    NA  1980    NA

也许更重要的是,生成的 data.frame 的结构是整数向量:

str(df)
'data.frame':   3 obs. of  3 variables:
 $ x2000: int  100 200 NA
 $ x2001: int  1200 2002 1980
 $ x2002: int  230 280 NA

没有这个,你最终会得到整数向量和因子变量的混合,这会使清理过程有点复杂。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多