我正在尝试读取使用特殊字符作为分隔符和引号的csv文件。定界符是ascii字符20,引号字符是ascii 254。
如何将这两个参数传递给read.csv函数?
MyData <- read.csv(file="c:/TheDataIWantToReadIn.csv", header=TRUE, sep=",")
答案 0 :(得分:0)
一种方法是使用rawToChar
将所需的值保存在对象中,然后将它们传递给read.table
sep
和quote
参数({{ 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þ