我正在处理遗传数据,并且我有一个巨大的输出文件(制表符分隔的文本文件),在某些列中我有缺失值。这些被留下作为空白。
我想用 NA 或 (.) 更改空格。我怎样才能在 R 中做到这一点?
你真的试过读你的文件吗?在 下?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 = "" )
假设您有一个名为 的数据框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
)。