Jak wyeksportować ramkę danych do pliku csv w r (z przykładami)


Załóżmy, że mamy następującą ramkę danych w R:

 #create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
                 points=c(78, 85, 93, 90, 91),
                 assists=c(12, 20, 23, 8, 14))

#view data frame
df

  team points assists
1 A 78 12
2 B 85 20
3 C 93 23
4 D 90 8
5 E 91 14

Istnieją trzy popularne sposoby eksportowania tej ramki danych do pliku CSV w R:

1. Użyj write.csv z bazy R

Jeśli Twój blok danych jest stosunkowo mały, możesz po prostu użyć funkcji zapisu w formacie R base.csv, aby wyeksportować go do pliku CSV.

Korzystając z tej metody, pamiętaj o określeniu row.names=FALSE, jeśli nie chcesz, aby R eksportował nazwy wierszy do pliku CSV.

 write.csv(df, " C:\\Users\\Bob\\Desktop\\data.csv ", row.names= FALSE )

2. Użyj write_csv z pakietu Reader

Jeszcze szybszym sposobem eksportowania ramki danych do pliku CSV jest użycie funkcji write_csv pakietu czytnika. Jest około 2 razy szybszy niż write.csv i nigdy nie zapisuje nazw wierszy ramki danych do pliku CSV.

 library (readr)

write_csv(df, " C:\Users\Bob\Desktop\data.csv ")

3. Użyj fwrite z pakietu data.table

Mimo to szybszym sposobem (i zalecaną metodą w przypadku dużych zbiorów danych) eksportowania ramki danych do pliku CSV jest użycie funkcji fwrite z pakietu data.table. Ta funkcja jest około 2 razy szybsza niż metoda write_csv.

 library (data.table)

fwrite(df, " C:\Users\Bob\Desktop\data.csv ")

Zauważ, że w każdym przykładzie użyliśmy podwójnych ukośników odwrotnych (\\) w ścieżce pliku, aby uniknąć następującego częstego błędu:

 Error: '\U' used without hex digits in character string starting ""C:\U"

Wynik

Każda z trzech powyższych metod tworzy identyczny plik CSV. Jeśli otworzysz ten plik w programie Excel, wygląda to tak:

Eksportuj ramkę danych do pliku CSV w R

A jeśli otworzymy plik CSV za pomocą czytnika tekstu, takiego jak Notatnik, wygląda to tak:

Eksportuj ramkę danych do formatu CSV w R

Powiązane: Jak importować pliki CSV do R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *