首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取带有不规则嵌套引号的文件?

如何读取带有不规则嵌套引号的文件?
EN

Stack Overflow用户
提问于 2021-10-24 01:10:42
回答 1查看 51关注 0票数 0

我有一个带有不规则引号的文件,如下所示:

代码语言:javascript
复制
"INDICATOR,""CTY_CODE"",""MGN_CODE"",""EVENT_NR"",""EVENT_NR_CR"",""START_DATE"",""PEAK_DATE"",""END_DATE"",""MAX_EXT_ON"",""DURATION"",""SEVERITY"",""INTENSITY"",""AVERAGE_AREA"",""WIDEST_AREA_PERC"",""SCORE"",""GRP_ID"""
"Spi-3,""AFG"","""",1,1,""1952-10-01"",""1952-11-01"",""1953-06-01"",""1952-11-01"",9,6.98,0.78,19.75,44.09,5,1"

这看起来很不规则,因为第一列只用单引号包装,而后续的每一列都用双引号包装。我想阅读它,以便每个列都没有引号(无论是在头中,还是在数据中)。

我尝试了以下几点:

代码语言:javascript
复制
# All sorts of tidyverse imports
tib <- readr::read_csv("file.csv")

我也尝试了给here的建议

代码语言:javascript
复制
# Base R import
DF0 <- read.table("file.csv", as.is = TRUE)
DF <- read.csv(text = DF0[[1]])

# Data table import
DT0 <- fread("file.csv", header =F)
DT <- fread(paste(DT0[[1]], collapse = "\n"))

但是,即使在后两种情况下导入文件时,变量名称和一些元素也是用引号包装的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-24 03:08:19

我在data.table::fread中使用了quote="“选项(即”原样“)。

然后,我删除了所有引号,从而清除了名字和数据。

日期也可以改,但我没那么做。

代码语言:javascript
复制
library(data.table)
library(magrittr)
DT0 <- fread('file.csv', quote = "")
DT0 %>% setnames(names(.), gsub('"', '', names(.)))
string_cols <- which(sapply(DT0, class) == 'character')
DT0[, (string_cols) := lapply(.SD, function(x) gsub('\\"', '', x)), 
    .SDcols = string_cols]
代码语言:javascript
复制
str(DT0)

Classes ‘data.table’ and 'data.frame':  1 obs. of  16 variables:
 $ INDICATOR       : chr "Spi-3"
 $ CTY_CODE        : chr "AFG"
 $ MGN_CODE        : chr ""
 $ EVENT_NR        : int 1
 $ EVENT_NR_CR     : int 1
 $ START_DATE      : chr "1952-10-01"
 $ PEAK_DATE       : chr "1952-11-01"
 $ END_DATE        : chr "1953-06-01"
 $ MAX_EXT_ON      : chr "1952-11-01"
 $ DURATION        : int 9
 $ SEVERITY        : num 6.98
 $ INTENSITY       : num 0.78
 $ AVERAGE_AREA    : num 19.8
 $ WIDEST_AREA_PERC: num 44.1
 $ SCORE           : int 5
 $ GRP_ID          : chr "1"
 - attr(*, ".internal.selfref")=<externalptr> 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69693175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档