我有一个制表符分隔的DAT文件,我想读入R.当我使用read.delim
导入数据时,我的数据框具有正确的列数,但行数多于预期。
我的数据文件代表对调查的回复。在深入挖掘之后,看起来R正在创建一个新的记录,当有一个“。”在代表开放式响应的列中。似乎有时受访者可能已经点击“输入”来添加新行。
有没有办法解决这个问题?我阅读了帮助,但我不知道如何告诉R在字符响应中忽略这个字符。
以下是错误解析的示例响应。这是一个响应,但您可以看到有一些返回信息在由R解析时将其放在多行上。
possible ask for size before giving free tshirt.
Also maybe have the interview in conference rooms instead of tight offices. I felt very cramped.
I would of loved to have gone, but just had to make a choices and had more options then I expected.
我正在用SPSS分析数据并且数据很好,但是,我需要使用R来进行更高级的建模
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:3)
有一个'na.strings'的论点。您不提供任何测试用例,但也许您可以这样做:
read.delim(file="myfil.DAT", na.strings=".")
我认为如果您能够对问题进行编辑以更好地证明问题,那将是一件好事。我无法通过简单的努力创建错误:
> read.delim(text="a\tb\t.\nc\td\te\n",header=FALSE)
V1 V2 V3
1 a b .
2 c d e
> read.delim(text="a\tb\t.\nc\td\te\n",header=FALSE, na.strings=".")
V1 V2 V3
1 a b <NA>
2 c d e
(澄清之后上述评论并不特别相关。)这将引入一个包含换行符的字段....但它要求在原始文件中引用“字段”:
> scan(file=textConnection("'a\nb'\nx\t.\nc\td\te\n"), what=list("","","") )
Read 2 records
[[1]]
[1] "a\nb" "c"
[[2]]
[1] "x" "d"
[[3]]
[1] "." "e"