read .csv文件在R中包含双引号(打算删除)

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

我打算在读取.csv文件的数据集内包含双引号(例如德国信用数据集)时遇到问题。我想知道是否有任何有效的方法可以通过read函数中指定的参数删除其中的双引号。我尝试了几种方法,但没有得出我想要的结论。请帮我解决这个问题。谢谢。

[[给出的原始德国信贷.csv数据集] [1]

[1]:https://i.stack.imgur.com/130cj.png

然后尝试了以下代码,但结果如下

GermanCredit <- read.csv("D:/R Statistics/GermanCredit/germancredit.csv", stringsAsFactors = FALSE, header = TRUE, sep = "," , quote = "")

结果如下:

[带有引号参数的read.csv] [1]

[1]:https://i.stack.imgur.com/uwncH.png

然后我避免指定引号参数

germancredit <- read.csv("D:/R Statistics/GermanCredit/germancredit.csv", stringsAsFactors = FALSE, header = TRUE, sep = ",")

导致以下结果:

[read.csv(不带引号的参数)[1]

[1]:https://i.stack.imgur.com/Oebu0.png

第三次我尝试如下使用read.table函数

German_Credit <- read.table("D:/R Statistics/GermanCredit/germancredit.csv", quote = NULL, header = TRUE, sep = ",")

结果与第一没有什么不同。我也一直在使用readr包中的fread函数,结果没有什么不同。谁能告诉我在读取csv文件时有效删除引号的方法。非常感谢。

dput(readLines("D:/R Statistics/GermanCredit/germancredit.csv", n = 10))

c(“ \” \“ \”状态\“ \”,\“ \”持续时间\“ \”,\“ \” credit_history \“ \”,\“ \”目的\“ \”,\“ \ “ amount \” \“,\” \“储蓄\” \“,\” \“ employment_duration \” \“,\” \“ installation_rate \” \“,\” \“ personal_status_sex \” \“,\” \ “ other_debtors \” \“,\” \“ present_residence \” \“,\” \“属性\” \“,\” \“年龄\” \“,\” \“ other_installment_plans \” \“,\” \ “房屋\” \“,\” \“数字信用卡\” \“,\” \“工作\” \“,\” \“ people_liable \” \“,\” \“电话\” \“,\” \ “ foreign_worker \” \“,\” \“ credit_risk \” \“ \”“,“ \” \“ \” ... <100 DM \“ \”,6,\“ \”关键帐户/其他信用现有\“ \”,\“ \”家用设备\“ \”,1169,\“未知/没有节省帐户\“ \”,\“ \” ...> = 7岁\“ \”,4,\“ \”男性:单\“ \”,\“ \”无\“ \”,4,\“ \”真实estate \“ \”,67,\“ \” none \“ \”,\“ \” own \“ \”,2,\“ \”熟练员工/官员\“ \”,1,\“ \”是\“ \”,\“ \”是\“ \”,1 \“”,“ \” \“ \” 0 <= ...<200 DM \“ \”,48,\“ \”现有的信用额,应归还至现在\“ \”,\“ \”家用设备\“ \”,5951,\“ \” ... <100 DM \“ \”,\“ \” 1 <=... <4岁\“ \”,2,\“ \”女:离婚/分居/已婚\“ \”,\“ \”无\“ \”,2,\“ \”真实estate \“ \”,22,\“ \” none \“ \”,\“ \” own \“ \”,1,\“ \”熟练员工/官员\“ \”,1,\“ \”否\“ \”,\“ \”是\“ \”,0 \“”,“ \” \“ \”否支票帐户\“ \”,12,\“ \”关键帐户/其他信用现有\“ \”,\“ \”再培训\“ \”,2096,\“ \” ... <100 DM \“ \”,\“ \” 4 <= ...<7岁\“ \”,2,\“ \”男性:单身\“ \”,\“ \”无\“ \”,3,\“ \”真实estate \“ \”,49,\“ \” none \“ \”,\“ \” own \“ \”,1,\“ \”非技术人员-居民\“ \”,2,\“ \”否\“ \”,\“ \”是\“ \”,1 \“”,“ \” \“ \” ... <100DM \“ \”,42,\“ \”现有的贷项已归还至现在\“ \”,\“ \”广播/电视\“ \”,7882,\“ \” ... <100 DM \“ \”,\“ \” 4 <=... <7岁,男性,2岁,男性:单身,“担保人”,“ 4”,“建立社会储蓄”协议/人寿保险\“ \”,45,\“ \”无\“ \”,\“ \”免费\“ \”,1,\“ \”熟练员工/官员\“ \”,2,\“ \”否\“ \”,\“ \”是\“ \”,1 \“”,“ \” \“ \” ... <100DM \“ \”,24,\“ \”延迟偿还过去的\“ \”,\“ \”汽车(新)\“ \”,4870,\“ \” ... <100 DM \“ \”,\“ \” 1 <= ... <4years \“ \”,3,\“ \” male:单身\“ \”,\“ \”无\“ \”,4,\“ \”未知/否属性\“ \”,53,\“ \”无\“ \”,\“ \”免费\“ \”,2,\“ \”熟练员工/官员\“ \”,2,\“ \”否\“ \”,\“ \”是\“ \”,0 \“”,“ \” \“ \”否支票帐户\“ \”,36,\“ \”现有的贷项已归还至现在\“ \”,\“ \”再培训\“ \”,9055,\“ \”未知/无储蓄帐户\“ \”,\“ \” 1 <= ... <4岁\“ \”,2,\“ \”男性:单\“ \”,\“ \”无\“ \”,4,\“ \”未知/否属性\“ \”,35,\“ \”无\“ \”,\“ \”免费\“ \”,1,\“ \”非熟练-常驻\“ \”,2,\“ \”是\“ \”,\“ \”是\“ \”,1 \“”,“ \” \“ \”不检查帐户\“ \”,24,\“ \”现有的贷项已归还至现在\“ \”,\“ \”广播/电视\“ \”,2835,\“ \” 500 <= ... <1000DM \“ \”,\“ \” ...> = 7岁\“ \”,3,\“ \”男性:建立社会储蓄协议/生命的单身,没有,没有,4,保险\“ \”,53,\“ \”无\“ \”,\“ \”自己的\“,1,\” \“熟练员工/官员\“ \”,1,\“ \”否\“ \”,\“ \”是\“ \”,1 \“”,“ \” \“ \” 0 <= ...<200 DM \“ \”,36,\“ \”现有的信用额,应归还至现在\“ \”,\“ \”汽车(二手车)\“ \”,6948,\“ \” ... <100 DM \“ \”,\“ \” 1 <= ... <4years \“ \”,2,\“ \” male:单身\“ \”,\“ \”无\“ \”,2,\“ \”汽车或其他\“ \”,35,\“ \”无\“ \”,\“ \”租金\“,1,\” \“管理/个体经营/高度合格的员工/官员\“ \”,1,\“ \”是\“ \”,\“ \”是\“ \”,1 \“”,“ \” \“ \”无支票帐户\“ \”,12,\“到现在为止\“ \”,\“ \”家用设备\“ \”,3059,\“ \” ...> = 1000DM \“ \”,\“ \” 4 <= ... <7岁\“ \”,2,\“ \”男性:离婚/分居\“ \”,\“ \”无\“ \”,4,\“ \”真实estate \“ \”,61,\“ \” none \“ \”,\“ \” own \“ \”,1,\“ \”非技术人员-常驻\“ \”,1,\“ \”否\“ \”,\“ \”是\“ \”,1 \“”)

r double-quotes read.csv
1个回答
1
投票

文件中有两件奇怪的事情

  • 文件使用双双引号""
  • 文件中的行也被引用

"""a"",1" """b"",2"

[这可能是因为您的文件是一个错误读取的CSV文件(例如,使用了错误类型的分隔符,例如';'),然后将其作为CSV文件写掉了。

首先删除外部引号,然后使用双双引号作为引号(如@ytu所示)似乎可行:

lines <- readLines("<yourfile>") lines <- gsub('(^"|"$)', "", lines) read.csv(textConnection(lines), quote = '""')

© www.soinside.com 2019 - 2024. All rights reserved.