這可能不是最優雅的解決方案,但它可能就足夠了。
首先,閱讀整行內容,而不是試圖直接解釋爲csv。在第一個代碼塊中,我已經使用了textConnection
,您可以提供文件路徑或網址,例如readLines('/path/to/my/strange.csv')
。
tmp <- readLines(textConnection('head1,head2,head3"dat1","dat2","123"
"dat3","dat4","456"
"dat5","dat6","789"
"dat7","dat8","012"
"dat9","dat10","345"
"dat11","dat12","678"'))
然後有點第一行的操縱:
h <- sub('\".*', '', tmp[1]) # extracts the headers from the first line
row1 <- sub('[^\"]*(.*)', '\\1', tmp[1]) # extracts the first row's data
tmp <- c(row1, tmp[-1]) # combines the first row's data with subsequent rows' data
現在解釋是一個CSV:
dat <- read.csv(textConnection(tmp), header=FALSE) # read tmp in as a csv
names(dat) <- strsplit(h, ',')[[1]] # add headers
dat
head1 head2 head3
1 dat1 dat2 123
2 dat3 dat4 456
3 dat5 dat6 789
4 dat7 dat8 12
5 dat9 dat10 345
6 dat11 dat12 678
缺少一個逗號,或缺少換行符? –
標題的元素是否也被引用?所有文件的標題是否相同? – jbaums
標題不在引號內,元素用引號引起來。我不確定它是否缺少逗號或換行符。我如何檢查? - 感謝 – John