R:read.csv将字母i导入为NA

时间:2016-05-03 20:04:54

标签: r csv na

非常简单的问题(我认为)。我尝试将.csv文件导入R,从一个实验中,人们通过推动" e"或者"我"键。在测试中,我只回应了" i" key,因此数据集中的响应变量基本上是一个" i" s(没有引号)的列表。当我尝试将数据导入R:

noload=read.csv("~/Desktop/eprime check no load.csv", na.strings = "")

响应变量出现在所有NA中。当我尝试所有的" e,或者" e"和"我",它工作正常。

使得R将其视为NA(即使没有na.strings = ""部分也是如此)的字母i是什么?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

当您要求R读取表而未指定列的数据类型时,它将尝试“猜测”数据类型。在这种情况下,它猜测数据类型的“复杂”。例如,如果您有datafile.csv内容

Var
i
i
i

你做了:

df = read.csv("datafile.csv", header = TRUE, na.strings = "")
class(df$Var)

你会得到

[1] "complex"

R将i解释为purely imaginary value。要解决此问题,只需使用colClass指定数据类型,如下所示:

df = read.csv("datafile.csv", header = TRUE, na.strings = "", colClass = "factor")

或用您想要的任何内容替换factor。通常最好像这样预先指定数据类型,以便以后不会遇到混淆错误。