1

我有一个制表符分隔的 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 进行更高级的建模

任何帮助将不胜感激。提前致谢。

4

1 回答 1

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"
于 2012-08-01T16:35:32.540 回答