R:仅在文本上使用双引号导入 CSV
R: Import CSV with double quotes only on text
我正在尝试导入 CSV,其中文本列用双引号引起来但数字列没有。我总共有 95 列,所以我无法手动修改这些列。 (注:文中有逗号我删不掉)
下面是一个示例数据集来说明我的问题。
CSV 文件:
"Column 1","Column 2","Column 3","Column 4","Column 5"
2,"A,A","B,Z","C,C",44
3,"A,X","B,B","C,C",121
期望的输出:
Column 1 Column 2 Column3 Column4 Column5
2 A,A B,Z C,C 44
3 A,X B,B C,C 121
我试过了:
test=read.csv('test.csv', header=TRUE,sep =",")
删除空行,因为 read.table
无法接受它们
readLines(textConnection(txt)) -> rl # readLines('csvfile.csv') for you
rl[1:length(rl) %% 2 == 1] -> rl2
read.table(text = rl2, sep = ',', h = TRUE)
输出:
Column.1 Column.2 Column.3 Column.4 Column.5
1 2 A,A B,Z C,C 44
2 3 A,X B,B C,C 121
数据:
txt <- '"Column 1","Column 2","Column 3","Column 4","Column 5"
2,"A,A","B,Z","C,C",44
3,"A,X","B,B","C,C",121'
tf <- tempfile()
csv <- '"Column 1","Column 2","Column 3","Column 4","Column 5"\n\n2,"A,A","B,Z","C,C",44\n\n3,"A,X","B,B","C,C",121'
writeLines( csv , tf )
x <- read.csv( tf )
Column.1 Column.2 Column.3 Column.4 Column.5
1 2 A,A B,Z C,C 44
2 3 A,X B,B C,C 121
我正在尝试导入 CSV,其中文本列用双引号引起来但数字列没有。我总共有 95 列,所以我无法手动修改这些列。 (注:文中有逗号我删不掉)
下面是一个示例数据集来说明我的问题。
CSV 文件:
"Column 1","Column 2","Column 3","Column 4","Column 5"
2,"A,A","B,Z","C,C",44
3,"A,X","B,B","C,C",121
期望的输出:
Column 1 Column 2 Column3 Column4 Column5
2 A,A B,Z C,C 44
3 A,X B,B C,C 121
我试过了:
test=read.csv('test.csv', header=TRUE,sep =",")
删除空行,因为 read.table
无法接受它们
readLines(textConnection(txt)) -> rl # readLines('csvfile.csv') for you
rl[1:length(rl) %% 2 == 1] -> rl2
read.table(text = rl2, sep = ',', h = TRUE)
输出:
Column.1 Column.2 Column.3 Column.4 Column.5
1 2 A,A B,Z C,C 44
2 3 A,X B,B C,C 121
数据:
txt <- '"Column 1","Column 2","Column 3","Column 4","Column 5"
2,"A,A","B,Z","C,C",44
3,"A,X","B,B","C,C",121'
tf <- tempfile()
csv <- '"Column 1","Column 2","Column 3","Column 4","Column 5"\n\n2,"A,A","B,Z","C,C",44\n\n3,"A,X","B,B","C,C",121'
writeLines( csv , tf )
x <- read.csv( tf )
Column.1 Column.2 Column.3 Column.4 Column.5
1 2 A,A B,Z C,C 44
2 3 A,X B,B C,C 121