dane <- read.table(
file = "dane1_srednik.txt", # lokalizacja i nazwa pliku
header = TRUE, # czy zawiera nazwy kolumn
sep = ";", # separtor wartosci
dec = "." # separator miejsca dzisiętnego
) Wykład 4
1 Importowanie danych
file.create(...)- Funkcja tworzy pliki o zadanych nazwach, jeżeli takie pliki istnieją, to ich zawartość jest kasowana.file.exists(...)- Funkcja sprawdza, czy pliki o zadanych nazwach istnieją.file.remove(...)- Funkcja usuwa pliki o zadanych nazwach (patrz też funkcjaunlink()).file.rename(from, to)- Funkcja zmienia nazwę pojedynczego pliku.file.append(file1, file2)- Funkcja dokleja plik o nazwie file2 do pliku file1.file.copy(from, to, overwrite=FALSE)- Funkcja do kopiowania pliku zfromw pozycję wskazaną przez argumentto.file.symlink(from, to)- Funkcja do tworzenia linków symbolicznych (pod Unixami).dir.create(path, showWarnings=TRUE, recursive=FALSE)- Funkcja do tworzenia katalogów. Wynikiem tej funkcji jest wartość TRUE, jeżeli operacja utworzenia katalogu została wykonana pomyślnie. Jeżeli dany katalog już istnieje lub nie udało go się utworzyć funkcja przekazuje wartość FALSE.file.info(...)- Wynikiem tej funkcji są informacje o wskazanych plikach.file_test(op, x, y)- Funkcja do testowania plików. Dostępne testy to: jednoargumentowe (tylko x jest używane) op=“-f” istnieje i nie jest katalogiem, op=“-d” istnieje i jest katalogiem oraz dwuargumentowe op=“-nt” jest młodszy niż (pod uwagę brane są daty modyfikacji) i op=“-ot” jest starszy niż.file.show(...)- Funkcja wyświetla w oknie R zawartość jednego lub większej liczby plików.
2 read.table() → wczytuje dane
file- ścieżka do pliku z danymi, może być też adres URL. Jeżeli wartości argumentów podajemy w ich domyślnej kolejności, to możemy pominąć nazwy argumentów (dlatego w kolejnych przykładach nie będziemy podawać nazwy tego argumentu).header- flaga określająca, czy pierwszy wiersz należy traktować jako nagłówek. W naszym przypadku header=TRUE.sep- znak rozdzielający kolumny. W naszym przypadku sep=“;”, ale popularnymi separatorami są również znak tabulacji (oznaczany , przecinek lub spacja. Separatorem może być dowolny, ale tylko jeden znak.dec- separator dziesiętny. Zazwyczaj jest to . lub ,. W naszym przypadku dec=“,”.nrows- maksymalna liczba wierszy do wczytania. Domyślnie ten argument przyjmuje wartość -1, czyli wczytaj wszystkie wiersze.skip- liczba pierwszych wierszy do pominięcia od góry przy wczytywaniu danych, domyślnie 0, czyli nie pomijaj żadnego wiersza.comment.char- znak komentarza. Jeżeli w danych wystąpi ten znak to treść od tego znaku do końca linii będzie zignorowana.stringsAsFactors- czy napisy powinny być domyślnie przekształcone w zmienne jakościowe. Domyślnie TRUE.
2.1 CVS
read.csv("dane/dane1_srednik.csv", sep = ";") -> dane6
dane7 <- read.table(file = "http://biecek.pl/MOOC/dane/koty_ptaki.csv",
sep=";", dec=",", header=TRUE)
read.csv(file = "http://biecek.pl/MOOC/dane/koty_ptaki.csv", sep = ";") -> dane72.2 XLSX - Excel
- zainstalować i załadować pakiet
openxlsx dane <- read.xlsx("dane/dwa_arkusze.xlsx", sheet = 1)
2.3 Pliki binarne - format R
load(url("http://biecek.pl/MOOC/dane/koty_ptaki.rda"))
load("dane.RData")3 Zapisywanie danych
3.1 rio
- inteligentna funkcja, sama dobiera skip
rio::import(file = "dane/dane3_brudny.txt")
3.2 write.table
write.table(
dane,
file = "write1.txt",
sep = ";",
dec = ".",
row.names = F,
col.names = T
)
write.table(
dane,
file = "write2.csv",
sep = ",",
dec = ".",
row.names = F,
col.names = T
)
write.csv(dane, file = "write3.csv", row.names = F)
write.xlsx(zwierz, file = "zwierz.xlsx")
save(dane, dane2, zwierz, koty_ptaki,
file = "dane_all.RData") # można od razu zapisać kilka
file.remove(c( "dane_all.RData", "write1.txt", "write2.csv",
"write3.csv", "zwierz.xlsx"))4 Pakiet readr
4.1 Usuwanie braków
stud <-
read_csv(file = "https://pos.it/r4ds-students-csv",
na = c("N/A", ""))
stud
# zamienia "" na N/A
stud <-
rename(stud,
student_id = `Student ID`,
full_name = `Full Name`)
#zamiana nazw4.2 read_
read_csv(
"Pierwsza linia
druga linia
a,b,c
1,2,3
4,5,6",
skip = 2
)4.3 Inne typy plików
read_csv2()czyta pliki oddzielone średnikami. Używa się ich ;zamiast ,oddzielać pola i jest powszechne w krajach, w których stosuje się ,znacznik dziesiętny.read_tsv()czyta pliki rozdzielane tabulatorami.read_delim()wczytuje pliki z dowolnym ogranicznikiem, próbując automatycznie odgadnąć ogranicznik, jeśli go nie określisz.read_fwf()czyta pliki o stałej szerokości. Możesz określić pola według ich szerokości za pomocąfwf_widths()lub według ich pozycji za pomocąfwf_positions().read_table()odczytuje popularną odmianę plików o stałej szerokości, w których kolumny są oddzielone białym znakiem.read_log()czyta pliki dziennika w stylu Apache.