R - pliki CSV
W R możemy odczytywać dane z plików przechowywanych poza środowiskiem R. Możemy również zapisywać dane do plików, które będą przechowywane i dostępne dla systemu operacyjnego. R może czytać i zapisywać w różnych formatach plików, takich jak csv, excel, xml itp.
W tym rozdziale nauczymy się czytać dane z pliku csv, a następnie zapisywać dane do pliku csv. Plik powinien znajdować się w bieżącym katalogu roboczym, aby R. mógł go odczytać. Oczywiście możemy również ustawić własny katalog i stamtąd czytać pliki.
Pobieranie i konfigurowanie katalogu roboczego
Możesz sprawdzić, na który katalog wskazuje obszar roboczy języka R, używając rozszerzenia getwd()funkcjonować. Możesz również ustawić nowy katalog roboczy za pomocąsetwd()funkcjonować.
# Get and print current working directory.
print(getwd())
# Set current working directory.
setwd("/web/com")
# Get and print current working directory.
print(getwd())
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
[1] "/web/com/1441086124_2016"
[1] "/web/com"
Wynik zależy od systemu operacyjnego i bieżącego katalogu, w którym pracujesz.
Wprowadź jako plik CSV
Plik csv to plik tekstowy, w którym wartości w kolumnach są oddzielone przecinkiem. Rozważmy następujące dane obecne w pliku o nazwieinput.csv.
Możesz utworzyć ten plik za pomocą Notatnika Windows, kopiując i wklejając te dane. Zapisz plik jakoinput.csv używając opcji zapisz jako wszystkie pliki (*. *) w notatniku.
id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Michelle,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
5,Gary,843.25,2015-03-27,Finance
6,Nina,578,2013-05-21,IT
7,Simon,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance
Czytanie pliku CSV
Poniżej znajduje się prosty przykład read.csv() funkcja odczytu pliku CSV dostępnego w Twoim bieżącym katalogu roboczym -
data <- read.csv("input.csv")
print(data)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
id, name, salary, start_date, dept
1 1 Rick 623.30 2012-01-01 IT
2 2 Dan 515.20 2013-09-23 Operations
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
6 6 Nina 578.00 2013-05-21 IT
7 7 Simon 632.80 2013-07-30 Operations
8 8 Guru 722.50 2014-06-17 Finance
Analiza pliku CSV
Domyślnie read.csv()funkcja daje wynik jako ramkę danych. Można to łatwo sprawdzić w następujący sposób. Możemy również sprawdzić liczbę kolumn i wierszy.
data <- read.csv("input.csv")
print(is.data.frame(data))
print(ncol(data))
print(nrow(data))
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
[1] TRUE
[1] 5
[1] 8
Po odczytaniu danych w ramce danych możemy zastosować wszystkie funkcje mające zastosowanie do ramek danych, jak wyjaśniono w kolejnej sekcji.
Uzyskaj maksymalne wynagrodzenie
# Create a data frame.
data <- read.csv("input.csv")
# Get the max salary from data frame.
sal <- max(data$salary)
print(sal)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
[1] 843.25
Poznaj dane osoby z maksymalnym wynagrodzeniem
Możemy pobrać wiersze spełniające określone kryteria filtrowania, podobnie jak klauzula SQL where.
# Create a data frame.
data <- read.csv("input.csv")
# Get the max salary from data frame.
sal <- max(data$salary)
# Get the person detail having max salary.
retval <- subset(data, salary == max(salary))
print(retval)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
id name salary start_date dept
5 NA Gary 843.25 2015-03-27 Finance
Zbierz wszystkie osoby pracujące w dziale IT
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset( data, dept == "IT")
print(retval)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
6 6 Nina 578.0 2013-05-21 IT
Pozyskaj osoby z działu IT, których pensja przekracza 600
# Create a data frame.
data <- read.csv("input.csv")
info <- subset(data, salary > 600 & dept == "IT")
print(info)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
Zdobądź osoby, które dołączyły w 2014 roku lub później
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
print(retval)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
id name salary start_date dept
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
8 8 Guru 722.50 2014-06-17 Finance
Zapisywanie do pliku CSV
R może utworzyć plik csv z istniejącej ramki danych. Plikwrite.csv()Funkcja służy do tworzenia pliku csv. Ten plik zostanie utworzony w katalogu roboczym.
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
# Write filtered data into a new file.
write.csv(retval,"output.csv")
newdata <- read.csv("output.csv")
print(newdata)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
X id name salary start_date dept
1 3 3 Michelle 611.00 2014-11-15 IT
2 4 4 Ryan 729.00 2014-05-11 HR
3 5 NA Gary 843.25 2015-03-27 Finance
4 8 8 Guru 722.50 2014-06-17 Finance
Tutaj kolumna X pochodzi ze zbioru danych newper. Można to usunąć, używając dodatkowych parametrów podczas zapisywania pliku.
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
# Write filtered data into a new file.
write.csv(retval,"output.csv", row.names = FALSE)
newdata <- read.csv("output.csv")
print(newdata)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
id name salary start_date dept
1 3 Michelle 611.00 2014-11-15 IT
2 4 Ryan 729.00 2014-05-11 HR
3 NA Gary 843.25 2015-03-27 Finance
4 8 Guru 722.50 2014-06-17 Finance