Ошибка неиспользуемого аргумента (sep =;) происходит со всеми файлами CSV

Я хотел бы открыть случайный csv-файл, например New_York_City_Leading_Causes_of_Death.csv (просто фиктивный, из учебника, но происходит с моими собственными данными таким же образом; заменен на;) https://www.dropbox.com/s/3usf8y75vz2cpj4/New_Lath_City_City_York_City_City_City_City_City_City_York_City_Deader

В схеме написано: Ошибка в read_csv ("New_York_City_Leading_Causes_of_Death.csv", sep = ";"): неиспользуемый аргумент (sep = ";")

Я создал несколько csv-файлов для отладки. Я попробовал readr :: read_csv, а также utils :: read_csv -> обе проблемы. Я убедился, что csv-файл и .r находятся в той же папке, которую я использую на компьютере университета ( может это узкое место?)

Заранее спасибо :)

library(utils)
library(utf8)

df <- read_csv("New_York_City_Leading_Causes_of_Death.csv", sep = ";" )
head(df)

Это сообщение об ошибке, которое я получаю:

Ошибка в read_csv ("New_York_City_Leading_Causes_of_Death.csv", sep = ";"): неиспользуемый аргумент (sep = ";")

Я ожидаю, что на выходе будет фрейм данных.


person robin    schedule 08.09.2019    source источник
comment
Я нашел решение своей проблемы. readr :: read_csv не работает - однако utils: read.csv работает достаточно хорошо: df ‹- utils :: read.csv (New_York_City_Leading_Causes_of_Death.csv, sep =;) все еще с ошибкой (см. выше): df‹ - readr :: read_csv (New_York_City_Leading_Causes_of_Death.csv, delim =;)   -  person robin    schedule 08.09.2019
comment
в функции read_scv нет аргумента sep =. а ваш CSV файл разделяется символом ,, а не ;. попробуйте read.csv   -  person Iman    schedule 08.09.2019
comment
Иман, даже с delim в read_csv не работает. В будущем я буду использовать read.csv.   -  person robin    schedule 08.09.2019
comment
попробуйте read_csv("New_York_City_Leading_Causes_of_Death.csv")   -  person Iman    schedule 08.09.2019
comment
Как я уже сказал, .csv - это всего лишь пустышка, и я работаю в RL с CSV-файлом на основе точки с запятой.   -  person robin    schedule 08.09.2019


Ответы (2)


Пакет utils имеет только функцию read.csv() - обратите внимание на . вместо _. Что касается функции read_csv() readr, у нее нет параметра с именем sep. Вот почему сообщение об ошибке неиспользованного аргумента sep появляется каждый раз, когда вы запускаете свой код.

Я попытался выполнить только read_csv('New_York_City_Leading_Causes_of_Death.csv') без каких-либо аргументов и смог прочитать следующее tibble:

# A tibble: 1,094 x 7
    Year `Leading Cause`                                 Sex   `Race Ethnicity`    Deaths `Death Rate` `Age Adjusted Dea~
   <dbl> <chr>                                           <chr> <chr>               <chr>  <chr>        <chr>             
 1  2010 Assault (Homicide: Y87.1, X85-Y09)              M     Black Non-Hispanic  299    35.1         35.5              
 2  2011 Mental and Behavioral Disorders due to Acciden~ M     Not Stated/Unknown  5      .            .                 
 3  2011 Diseases of Heart (I00-I09, I11, I13, I20-I51)  M     Black Non-Hispanic  1840   215.7        268.3             
 4  2008 Certain Conditions originating in the Perinata~ F     Other Race/ Ethnic~ .      .            .                 
 5  2014 Accidents Except Drug Posioning (V01-X39, X43,~ F     Hispanic            64     5.1          5.4               
 6  2007 Intentional Self-Harm (Suicide: X60-X84, Y87.0) M     Not Stated/Unknown  5      .            .                 
 7  2012 Accidents Except Drug Posioning (V01-X39, X43,~ M     Black Non-Hispanic  152    17.8         18.6              
 8  2009 All Other Causes                                M     Asian and Pacific ~ 220    43.1         56.1              
 9  2013 Diseases of Heart (I00-I09, I11, I13, I20-I51)  F     Asian and Pacific ~ 437    72.8         81.8              
10  2014 Accidents Except Drug Posioning (V01-X39, X43,~ M     Other Race/ Ethnic~ 12     .            .                 
# ... with 1,084 more rows

В качестве альтернативы, для повышения производительности с большими наборами данных рассмотрите возможность использования data.table::fread(). Функция fread() из пакета data.table позволяет указать в качестве разделителя ; с помощью аргумента sep = ';' ,. Обратите внимание, что fread() может возвращать только data.table или data.frame. По умолчанию fread() возвращает data.table, но может вернуть data.frame, если передан аргумент data.table = FALSE. Однако, если вы предпочитаете работать с tibble, вы можете просто заключить вызов fread() в as_tibble().

person Benjamin Ye    schedule 08.09.2019

То же случилось и со мной! Мое решение состояло в том, чтобы изменить read_csv на read.csv

Мой пример:

вместо X1_bank_full ‹- read_csv (C: / Users / User Name / Downloads / 1-bank-full.csv, sep =;)

правильный: X1_bank_full ‹- read.csv (C: / Users / User Name / Downloads / 1-bank-full.csv, sep =;)

person Paola    schedule 19.11.2020