readr 没有理由说列数比预期少

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

我正在尝试使用 readr

partyfacts
读取以下 CSV 文件。

导入会出现问题,但实际上没有问题。

download.file("https://partyfacts.herokuapp.com/download/external-parties-csv/", "partyfacts-external-parties.csv")
df <- readr::read_csv("partyfacts-external-parties.csv", show_col_types = FALSE)

警告:一个或多个解析问题,请在数据框上致电

problems()
了解详细信息,

例如:

数据<- vroom(...)

问题(数据)

让我们看看我们有什么:

nrow(problems(df))

86

problems(df)[1,]

# 小题:1 × 5 row col 预期实际文件

35519 15 17 列 15 列 /home/raffaele/Downloads/external-parties.csv

但实际上没有问题。

第 35519 行是:

BIH,elecglob,292,少女时代,独立社会民主党联盟,独立社会民主党联盟,1998,2014,19.1,2006,,,2019-02-08 19:26:26.193233+00:00,2021-03- 12 10:15:38.362019+00:00,30450,292,2019-02-08 19:26:26.296626+00:00

正确包含 17 列,而不是 15。

其他 84 个问题具有相同的性质(读取的列数少于预期)并且适用类似的推理(源文件中的列数是正确的)。

r csv tidyverse readr
1个回答
0
投票

您的问题是由某些单元格值中存在逗号引起的,这些值被 R 解释为分隔符,因为

readr::read_csv()
对输入数据的“整洁”程度严格要求。如果您需要 tibble,可以先使用不太严格的基数
read.csv()

library(tibble)

df <- read.csv("partyfacts-external-parties.csv") |>
  as_tibble(show_col_types = FALSE)

df
# # A tibble: 44,937 × 17
#    country dataset_key dataset_party_id name_short name     name_english year_first
#    <chr>   <chr>       <chr>            <chr>      <chr>    <chr>             <int>
#  1 ALB     manifesto   75721            DBSH       E Djath… United Alba…       1996
#  2 ALB     manifesto   75810            PASH       Partia … Agrarian Pa…       1991
#  3 ALB     manifesto   75421            AD         Partia … Democratic …       1992
#  4 ALB     manifesto   75951            PBDNJ      Partia … Union for H…       1991
#  5 ALB     manifesto   75624            PD         Partia … Democratic …       1991
#  6 ALB     manifesto   75622            PUK        Partia … Party of Na…       1992
#  7 ALB     manifesto   75623            PLL        Partia … Legality Mo…       1991
#  8 ALB     manifesto   75621            PP         Partia … People’s Pa…       1991
#  9 ALB     manifesto   75722            PRSH       Partia … Albanian Re…       1991
# 10 ALB     manifesto   75320            PSD        Partia … Social Demo…       1991
# # ℹ 44,927 more rows
# # ℹ 10 more variables: year_last <int>, share <dbl>, share_year <int>,
# #   description <chr>, comment <chr>, created <chr>, modified <chr>,
# #   external_id <int>, partyfacts_id <int>, linked <chr>
# # ℹ Use `print(n = ...)` to see more rows
© www.soinside.com 2019 - 2024. All rights reserved.