---
# System prepended metadata

title: R import
tags: [r-learn]

---

---
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)
```
