我有一個帶有不規則引號的檔案,如下所示:
"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"
這似乎是不規則的,因為第一列只用單引號括起來,而隨后的每一列都用雙引號括起來。我想閱讀它,以便每列都在沒有引號的情況下匯入(既不在標題中,也不在資料中)。
我試過的是以下內容:
# All sorts of tidyverse imports
tib <- readr::read_csv("file.csv")
我也嘗試了這里提供的建議:
# 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"))
但即使在后兩種情況下匯入檔案時,變數名和一些元素也用引號括起來。
uj5u.com熱心網友回復:
我使用data.table::fread了 quote="" 選項(即“原樣”)。
然后我通過消除所有引號來清理名稱和資料。
日期也可以轉換,但我沒有這樣做。
library(data.table)
library(magittr)
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]
字串(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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/335581.html
上一篇:有沒有辦法使用dbftocsvpythonlibrarydbfbyethanfurman替換和修剪單個欄位中的值?
