1

我正在处理遗传数据,并且我有一个巨大的输出文件(制表符分隔的文本文件),在某些列中我有缺失值。这些被留下作为空白。

我想用 NA 或 (.) 更改空格。我怎样才能在 R 中做到这一点?

4

2 回答 2

3

你真的试过读你的文件吗?在 下?read.table,它陈述的论点na.strings

na.strings
要被解释为 NA 值的字符串的字符向量。空白字段也被认为是逻辑、整数、数字和复杂字段中的缺失值。

所以,我猜(代替可重复的例子)......

read.table("C:/myfile.txt , sep = "\t")

如果您在包含数据的列中有空格character,则可以显式设置na.strings = ""哪个应该使 R 将所有空格视为NA...

read.table("C:/myfile.txt , sep = "\t" , na.strings = "" )
于 2013-08-09T10:20:19.510 回答
0

假设您有一个名为 的数据框df和一个名为 的列,您可以通过和v1的组合将任何完全为空白的字符串重新编码为丢失:replace()grepl()

df$v1 <- replace(df$v1, grepl("^\\s*$", df$v1) == TRUE, NA)

正如@Cath here所述,该grepl部分在字符串的开头 (^) 和结尾 ($) 之间搜索字符串中的“0 个或多个”(*) 空格 (\s)。如果字符串与这些条件匹配,则视为TRUE,否则视为FALSE

嵌套在replace函数中,然后,R 将重新编码任何符合这些标准的观察df$v1(即TRUE)作为缺失(即NA)。

于 2021-08-24T21:12:29.730 回答