读取带有分隔符和引号的分隔文件作为相同的引号字符 - “

问题描述 投票:0回答:1

我有一个 CSV 文件,其中分隔符是“

但是,文件中还有几个文本变量,在文本“example”周围有“”。

因此,read.csv 没有给出正确的输出,它表示列数多于列名。我怎样才能确保文本周围的“”不被读取为 R 中的分隔符?

这是 csv 的示例:

year"prak"pat"pres"ats"ispc"omschr 2011"724"22989865"11jun2019""V9JAA""111230""我的电影" 2011"689"1231223"21jun2019""KA0097""288900""XACINE" 2011"661"87987987"22mar2019""J09L91""2232600""XACINE" 2011"724"22989865"11jun2019""V9JAA""111230""MYCINE"

谢谢!

我尝试使用 quote = '"' 来确保文本周围的 " 不会被读取为分隔符。这没有用。

我也试过 header = False。这使得数据非常混乱,很多空的新列。

r csv separator read.csv
1个回答
0
投票

读取分隔符设置为

"
,然后删除所有行都是NA的列:

# example input
x <- read.table(text = '
2011"724"22989865"11jun2019""V9JAA""111230""MYCINE"
2012"724"22989865"11jun2019""V9JAA""111230""MYCINE"
2014"724"22989865"11jun2019""V9JAA""111230""MYCINE"
', sep = '"')

x
#     V1  V2       V3        V4 V5    V6 V7     V8 V9    V10 V11
# 1 2011 724 22989865 11jun2019 NA V9JAA NA 111230 NA MYCINE  NA
# 2 2012 724 22989865 11jun2019 NA V9JAA NA 111230 NA MYCINE  NA
# 3 2014 724 22989865 11jun2019 NA V9JAA NA 111230 NA MYCINE  NA

# remove NA columns
x[, !(colSums(is.na(x)) == nrow(x))]
#     V1  V2       V3        V4    V6     V8    V10
# 1 2011 724 22989865 11jun2019 V9JAA 111230 MYCINE
# 2 2012 724 22989865 11jun2019 V9JAA 111230 MYCINE
# 3 2014 724 22989865 11jun2019 V9JAA 111230 MYCINE
© www.soinside.com 2019 - 2024. All rights reserved.