• Nie Znaleziono Wyników

WczytywaniezbiorówdanychdoRDorotaCelińska-Kopczyńska StatystycznaAnalizaDanych–laboratorium

N/A
N/A
Protected

Academic year: 2021

Share "WczytywaniezbiorówdanychdoRDorotaCelińska-Kopczyńska StatystycznaAnalizaDanych–laboratorium"

Copied!
18
0
0

Pełen tekst

(1)

Statystyczna Analiza Danych – laboratorium

Wczytywanie zbiorów danych do R

Dorota Celińska-Kopczyńska

Uniwersytet Warszawski

(2)

Nad czym pracujemy

(3)

Konwencja

I W kodzie na niebieskozaznaczone są miejsca, w które można wprowadzać własną zawartość

I Systemy UNIX korzystają z “/” jako separatora ścieżki a DOS korzysta z “\”. W tej prezentacji, ścieżki zawierają “/”, o ile nie zaznaczono inaczej

(4)

Praca z danymi wbudowanymi

I Pakiet dataset dane wbudowane – dostępne zawsze w R I data() zwraca listę tych zbiorów danych

I Przykład wczytania: data(iris)

I Jeśli nie zostanie podana nowa nazwa dla zbioru, to zbiór otrzyma domyślną nazwę (np. iris)

(5)

Przykład pliku .txt lub .csv

I Dane zawarte w tabeli, pierwszy wiersz może zawierać nazwy zmiennych (header – nagłówek)

I Ważne: separator (znak oddzielający kolumny) i quote char (znak cytowania, jeśli napis zawiera separator)

id,name,edu,age,color 1,Adam,3,23,"red"

2,Beth,1,16,"green, yellow"

3,Celine,2,18,"blue"

4,David,4,30,"violet"

(6)

utils::read.table()

I read.table() wczytuje dane w formacie tabeli i zapisuje je jako data frame.

I Główny sposób wczytywania danych tabelarycznych do R

objectname<- read.table(‘‘plik’’, header=wartosc-logical, sep=’’character’’,

dec=’’character’’, quote=’’character’’, as.is=wartosc-logical, na.strings=’’character’’, comment.char=’’character’’, stringsAsFactors=wartosc-logical)

(7)

read.table(): argumenty

Argument Opis Domyślnie

file nazwa pliku brak – konieczne podanie

header czy plik zawiera nazwy kolumn w pierw- szym wierszu

FALSE

sep znak separatora kolumn sep = ”” (whitespace)

dec znak przecinka dziesiętnego ”.”

quote znaki używane do cytowania (kontekstu) ”\”’”

as.is czy napisy mają pozostać napisami? !stringsAsFactors na.strings wektor znaków, które mają być interpre-

towane jako brak danych (wartości NA)

”NA”

comment.char znak, który oznacza początek komenta- rza

”#”

stringsAsFactors czy napisy mają być konwertowane na factor?

TRUE

(8)

read.table(): trivia

I Nie trzeba podawać wartości dla wszystkich argumentów, jeśli domyślne są wystarczające

I Domyślnie kolumny zawierające napisy będą konwertowane na factor! Aby to zmienić albo należy użyć jednego z

argumentów, albo później samodzielnie zmienić interpretację wybranych kolumn (as.character()).

I tidyverse::tibble i data.table::data.table nie konwertują domyślnie napisów na factor

I Można podać url do pliku, niekoniecznie ścieżkę na dysku I Więcej specjalistycznych argumentów w manualu:

https://www.rdocumentation.org/packages/utils/

versions/3.5.1/topics/read.table

(9)

Inne funkcje do wczytania danych tabelarycznych

I utils zawiera dodatkowe funkcje o tej samej funkcjonalności co read.table() ale z innymi domyślnymi wartościami

Function header sep dec comment.char

read.csv() TRUE ”,” ”.” ””

read.csv2() TRUE ”;” ”,” ””

read.delim() TRUE ”\t” ”.” ””

read.delim2() TRUE ”\t” ”,” ””

(10)

pliki .xlsx: prosty sposób dla większości zastosowań

I Zapisz plik .xlsx w formacie .csv i wczytaj przez read.table() lub podobne

I Jeśli plik zawiera więcej zakładek, to ta metoda nie będzie efektywna – zakładki zapisujemy pojedynczo

(11)

Inne metody dla plików .xlsx

I openxlsx::read.xlsx I gdata::read.xls I readxl::read excel

I RODBC::odbcConnectExcel() + sqlQuery() (praca jak z bazą danych!)

# Skladnia openxlsx::read.xlsx library(openxlsx)

xlsfile<- read.xlsx("plik", sheet =1, colNames =T)

# Skladnia gdata::read.xls()

# Uwaga! Czasem wymaga podania sciezki do pliku wykonywalnego perla library(gdata)

xlsfle<- read.xls("file", sheet=number)

# Skladnia readxl::read excel library(readxl)

xlsfile<- read excel("file", range = anchored("cell-num", dim =vector), col names =FALSE)

# Skladnia RODBC library("RODBC")

xlsfile<- odbcConnectExcel("file") sqlQuery(xlsfile, "select * from\" Sheet1\"")

(12)

Przydatne funkcje dla danych z pakietów statystycznych

I Większość tych zbiorów danych jest przechowywana jako binarki – nie jest to format łatwy do odczytania

Źródło funkcja pakiet SPSS read.spss() foreign SPSS spss.get() Hmisc SPSS read sav() haven SAS read.ssd() foreign SAS sas.get() Hmisc SAS read sas() haven Stata read.dta() foreign Stata read dta() haven

(13)

Pozyskiwanie danych z Internetu

I Webscraping to proces pozyskiwania informacji ze stron internetowych

I Do R można wczytać dane bezpośrednio ze strony internetowej (pakiet rvest

I Tutaj przyjrzymy się ogólnym formatom plików, które mogą pojawić się przy webscrapingu

(14)

API

I API zapewniają narzędzia, które pozwalają programistom połączyć swoje oprogramowanie z “czymś jeszcze”

I Popularne API mają swoje pakiety, np. twitteR

I Brak ogólnych zasad – przeczytaj manual dla konkretnego API I API czasem zwracają dane w formacie XML lub JSON

(15)

Przykład pliku XML

I XML to język znaczników przedstawiający dane w postaci struktury drzewiastej

Source: http://www.w3schools.com/xml/xml tree.asp

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book category="cooking">

<title lang="en">Everyday Italian</title>

<author>Giada De Laurentiis</author>

<year>2005</year>

<price>30.00</price>

</book>

<book category="fantasy">

<title lang="en">Silmarillion</title>

<author>J. R. R. Tolkien</author>

<year>2005</year>

<price>23.99</price>

</book>

<book category="science">

<title lang="pl">Ekonometria</title>

<author>Jerzy Mycielski</author>

<year>2010</year>

<price>20.00</price>

</book>

</bookstore>

(16)

Przykład pliku JSON

I JSON reprezentuje dane jako krotki par atrybut-wartość zgromadzone w tablicach

[ {

"login": "octocat",

"url": "https://api.github.com/users/octocat",

"html url": "https://github.com/octocat",

"type": "User",

"site admin": false },

{

"login": "eryxyre",

"url": "https://api.github.com/users/eryxyre",

"html url": "https://github.com/eryxyre",

"type": "User",

"site admin": false },

]

(17)

Wczytanie JSON lub XML do R

library(jsonlite)

mydf<- fromJSON("json-file.json")

# konwersja z powrotem do JSON toJSON(mydf, pretty=TRUE)

# praca z plikami XML library(XML)

doc<- xmlParse("xmlfile.xml")

mydf<- xmlToDataFrame(nodes=getNodeSet(doc,"root"))[c(vector)])

# lub z wykorzystaniem XPaths

(18)

Zapis do pliku

I base::save()

I utils::write.table()

write.table(obiekt, file = "plik", append =FALSE, quote =TRUE, sep =" ", eol ="", na ="NA", dec =".", row.names =TRUE,

col.names =TRUE, fileEncoding ="") write.csv(...) # wartosci domyslne jak w read.csv() write.csv2(...) # wartosci domyslne jak w read.csv2()

Cytaty

Powiązane dokumenty

W najnowszej wersji programu SPSS for Windows 95 oznaczoneJ numerem 7.5 ofero- wane są następujące moduły: SPSS Basen-l, SPSS Advanced StatisticsTM, SPSS Professio-

Prawo wykonywania pliku pozwala na uruchomienie pliku wykonalnego, a w przypadku katalogu oznacza prawo dostępu do plików wewnątrz katalogu.. Minimalne prawa wymagane do

Dzi ki temu mo emy poznać, co dr czyło w tym czasie mieszka ców l ska Cieszy skiego, co ich popycha ło do ostateczno ci, jak jest odebranie sobie ycia. nast pi ła wyprzeda

Natomiast z całkowitą pew- nością nowy (lub też pierwszy) klasztor dominikański z kościołem w Nowogródku został ufundowany przez wojewodę wileńskiego Krzysztofa Chodkiewicza

Świętego Krzyża (naprzeciwko jezuickie- go kościoła pw. za sprawą syna księcia Michała Kazimierza, Karola Stanisława Radziwiłła 58. w ramach represji po powstaniu styczniowym

Wiado- mości na temat miasta i jego zabytków, [w:] Materiały do dziejów sztuki sakralnej na ziemiach wschodnich dawnej Rzeczypospolitej, 1: Kościoły i klasztory

Miejscowa tradycja halicka lokuje powstanie gminy karaimskiej w tym mieście na połowę XIII w., kiedy przedstawiciele tej społeczności mieli zostać osiedleni w Haliczu przez

Narastające problemy związane z degradacją terenów zielonych w mie- ście skłaniają do wypracowania nowego podejścia do rozwoju miasta oraz kształtowania jego