---
tags: r-learn
---
# R import
[erişim linki](https://hackmd.io/@_XewoO5-TXqsfl7SIIJhLQ/BJzPmg9H_/edit)
* `readr::read_csv` vs. `base::read.csv`
* `read_csv("C:\Users\ayşe\Documents\project\data.csv")` :-1:
* Rmd (veya R) dosyası ile csv, tsv beraber olursa `read_csv("data/mydata.csv")`
* `read_csv` ~ `read_tsv` ~ `read_delim` ~ `read_lines`
* `data.csv` dosyasına çift tıklayınca ne olur?
* `data.csv` dosyasının adını `data.txt` yaparsam ne olur? İkon değişebilir ama içerik değişmiyor!
* `read_csv/tsv/delim` komutu sadece lokal değil remote dosya da açabiliyor. Hatta sıkıştırılmış dosya da okuyabiliyor.
* read_csv("data/mydata.csv")
* read_csv("https://opendata.gov/covid/infections.csv")
* read_csv("data/mybigdata.csv.gz")
* read_csv("data/mybigdata.zip") :warning: *sıkıştırılmış dosya != arşiv*
* Excel için de `readxl::read_excel` fonksiyonu var
```{r}
read_csv("https://pkgstore.datahub.io/machine-learning/breast-cancer/breast-cancer_csv/data/cfade1d9730bf286d3a83abf7d48829d/breast-cancer_csv.csv")
```
```
Error in read_csv("url") :
could not find function "read_csv"
```
Dosyamızın/kodumuzun ilk satırında `library(tidyverse)` olması gerekiyor. :reminder_ribbon:
> İstenirse `readr::read_csv()` olarak da kullanılabiliyor
`read_csv` çalışınca ortaya çıkan bilgiler kırmızı renktedir fakat hata değildir:
```
── Column specification ─────────────────────
cols(
age = col_character(),
menopause = col_character(),
`tumor-size` = col_character(),
`inv-nodes` = col_character(),
`node-caps` = col_character(),
`deg-malig` = col_double(),
breast = col_character(),
`breast-quad` = col_character(),
irradiat = col_character(),
Class = col_character()
)
```
`read_csv`'nin birçok opsiyonu var, bunların ne işe yaradığını bilmek gerekir, özel durumlarda kullanmak için. (Konsolda `?read_csv` yazarsanız opsiyonların içeriklerini görebilirsiniz)
```
file, col_types, na, quote, trim_ws, n_max, progress,
col_names, locale, quoted_na, comment, skip, guess_max,
skip_empty_rows
```
`test.txt` isimli dosyanın içerikleri aşağıdaki gibi olsun:
```
!test verisi
!ekstra satırlar
#6 Nisan 2021 tarihinde oluşturulmuştur
Ali,30,1.5
Mehmet,25,4.5
```
Bu dosyanın okunması için `read_csv` fonksiyonunun aşağıdaki argümanlar ile kullanılması gerekir.
```r
readr::read_csv("test.txt",
comment="#",
col_names=F,
skip=2)
```
```
# A tibble: 2 x 3
X1 X2 X3
<chr> <dbl> <dbl>
1 Ali 30 1.5
2 Mehmet 25 4.5
```
> dosyada sorunlu kolon başlıkları varsa `janitor::clean_names()` fonksiyonunu kullanmanızı şiddetle tavsiye ediyoruz.
## Web sayfasından tablo okuma
[kod kaynağı](https://www.r-bloggers.com/2020/04/scrape-html-table-using-rvest/)
```r
library(tidyverse)
library(rvest)
content <- read_html("https://en.wikipedia.org/wiki/List_of_highest-grossing_films_in_the_United_States_and_Canada")
tables <- content %>% html_table(fill = TRUE)
first_table <- tables[[1]]
```
## API veri okuma
[kod kaynağı](https://medium.com/@traffordDataLab/querying-apis-in-r-39029b73d5f1)
```r
library(tidyverse)
library(httr)
library(jsonlite)
url <- "https://data.police.uk/api/crimes-street/burglary?lat=53.421813&lng=-2.330251&date=2018-05"
request <- GET(url)
response <- content(request, as = "text", encoding = "UTF-8")
fromJSON(response, flatten = TRUE) %>%
tibble() %>%
select(category,
type=location_type,month,
lat=location.latitude,
lng=location.longitude,
outcome=outcome_status.category)
```