【发布时间】:2017-12-21 00:50:42
【问题描述】:
我正在尝试加载一个逗号分隔的数据文件,该文件的一个文本列中也包含逗号。下面的示例代码会生成这样一个文件'test.csv',,我将使用read.csv() 加载该文件以说明我的问题。
> d <- data.frame(name = c("John Smith", "Smith, John"), age = c(34, 34))
> d
name age
1 John Smith 34
2 Smith, John 34
> write.csv(d, file = "test.csv", quote = F, row.names = F)
> d2 <- read.csv("test.csv")
> d2
name age
John Smith 34 NA
Smith John 34
由于Smith, John 中的',',d2 分配不正确。如何读取文件以使d2 看起来与d 完全一样?
谢谢。
【问题讨论】:
-
问题是你用
quote=F写的文件。把它拿走,它应该可以工作。 -
谢谢,但我的问题是文件按原样发送给我。我使用这个示例代码来创建这样一个文件。
-
@Manojit 您需要转义文件中的 CSV 条目,因为其中一些数据本身包含逗号。如果没有引号,
read.csv将在第二行看到:Smith, John, 34... 即它将看到 三个 列。 -
@Manojit 是只有一列有逗号,还是有多列有这个问题。
-
@TimBiegeleisen 谢谢。不幸的是,正如我之前解释的,文件不是我自己写的,它是按原样发送给我的(
write.csv()bit 是为了生成一个示例文件来说明我的问题)。我想read.csv()或read.table(),没有简单的方法可以做到这一点,我可能需要使用 Excel 之类的工具来编辑它。