R不可打印分隔符

时间:2018-07-02 23:53:18

标签: r csv

我正在尝试读取使用特殊字符作为分隔符和引号的csv文件。定界符是ascii字符20,引号字符是ascii 254。

如何将这两个参数传递给read.csv函数?

MyData <- read.csv(file="c:/TheDataIWantToReadIn.csv", header=TRUE, sep=",")

1 个答案:

答案 0 :(得分:0)

一种方法是使用rawToChar将所需的值保存在对象中,然后将它们传递给read.table sepquote参数({{ 1}}也可以使用,但命名对可读性没有帮助。

read.csv

写入文件的数据如下:

vals <- c(20, 254)
mode(vals) <- "raw"
vals <- c(rawToChar(vals[1]), rawToChar(vals[2]))

# write some example data
data <- mtcars[1:5, ]
for(i in names(data)){data[ ,i] <- paste0(vals[2], data[ , i], vals[2])}
write.table(data, "test.txt", quote = FALSE, sep = vals[1], row.names = FALSE)

# read data
read.table("test.txt", sep = vals[1], quote = vals[2], header = TRUE)

当读回它时,它看起来像这样:

mpgcyldisphpdratwtqsecvsamgearcarb
þ21þþ6þþ160þþ110þþ3.9þþ2.62þþ16.46þþ0þþ1þþ4þþ4þ
þ21þþ6þþ160þþ110þþ3.9þþ2.875þþ17.02þþ0þþ1þþ4þþ4þ
þ22.8þþ4þþ108þþ93þþ3.85þþ2.32þþ18.61þþ1þþ1þþ4þþ1þ
þ21.4þþ6þþ258þþ110þþ3.08þþ3.215þþ19.44þþ1þþ0þþ3þþ1þ
þ18.7þþ8þþ360þþ175þþ3.15þþ3.44þþ17.02þþ0þþ0þþ3þþ2þ