R Hile Sayfası
Son güncelleme
Hello World ve atama
R'nin deyimsel atama operatörü <- 'dir (= operatörü de çalışır).
| İşlem | Söz dizimi |
|---|---|
| Bir değeri yazdır | print("Hello, World!") |
| Otomatik yazdırma (konsol) | "Hello, World!" |
| Birleştir ve yazdır | cat("Hi", name, "\n") |
| Ata (deyimsel) | x <- 5 |
| Ata (bu da geçerli) | x = 5 |
| Sağa ata | 5 -> x |
| Yorum | # this is a comment |
| Bir betik çalıştır | Rscript app.R |
Veri tipleri ve vektörler
Vektör, R'nin temel veri yapısıdır; tek bir değer bile uzunluğu 1 olan bir vektördür.
| İşlem | Söz dizimi |
|---|---|
| Sayısal vektör | v <- c(1, 2, 3) |
| Karakter vektörü | s <- c("a", "b") |
| Mantıksal vektör | b <- c(TRUE, FALSE) |
| Tam sayı dizisi | 1:10 |
| Adımlı dizi | seq(0, 1, by = 0.1) |
| Değerleri tekrarla | rep(0, times = 5) |
| Temel tipler | numeric, character, logical, integer, complex |
| Tipi kontrol et / dönüştür | class(x), as.numeric("42") |
Vektör işlemleri
İşlemler vektörleştirilmiştir ve eleman bazında uygulanır; indeksleme 1 tabanlıdır.
| İşlem | Söz dizimi |
|---|---|
| Elemana eriş (1 tabanlı) | v[1] |
| Bir aralığı dilimle | v[2:4] |
| Mantıksal filtreleme | v[v > 2] |
| Bir elemanı düşür | v[-1] |
| Eleman bazında matematik | v * 2, v1 + v2 |
| Uzunluk | length(v) |
| Yaygın indirgeyiciler | sum(v), mean(v), max(v) |
| Sırala / tersine çevir | sort(v), rev(v) |
| Adlandırılmış vektör | c(a = 1, b = 2) |
Veri çerçeveleri (data frame)
Bir veri çerçevesi, her biri eşit uzunlukta bir vektör olan sütunlardan oluşan bir tablodur.
| İşlem | Söz dizimi |
|---|---|
| Bir veri çerçevesi oluştur | df <- data.frame(name = c("Ada"), age = c(30)) |
| İlk / son satırlar | head(df), tail(df) |
| Boyutlar | nrow(df), ncol(df), dim(df) |
| Sütun adları | names(df), colnames(df) |
| Bir sütun seç | df$age veya df[["age"]] |
| Satır / sütun seç | df[1, ], df[, "age"] |
| Satırları filtrele | df[df$age > 18, ] |
| Bir sütun ekle | df$adult <- df$age >= 18 |
| Özet istatistikler | summary(df) |
| Yapı genel görünümü | str(df) |
Faktörler ve listeler
Faktörler kategorik veriyi saklar; listeler karışık tiplerde elemanlar tutar.
| İşlem | Söz dizimi |
|---|---|
| Bir faktör oluştur | f <- factor(c("low", "high")) |
| Faktör seviyeleri | levels(f) |
| Sıralı faktör | factor(x, ordered = TRUE) |
| Seviyeye göre say | table(f) |
| Bir liste oluştur | l <- list(name = "Ada", scores = c(1, 2)) |
| Ada göre eriş | l$name veya l[["name"]] |
| Konuma göre eriş | l[[1]] |
| Alt liste (liste olarak kalır) | l[1] |
| Uzunluk / adlar | length(l), names(l) |
Kontrol akışı
Koşullar parantez içine, bloklar süslü parantez içine girer.
| İşlem | Söz dizimi |
|---|---|
| If / else if / else | if (x > 0) { ... } else if (x < 0) { ... } else { ... } |
| Vektörleştirilmiş if-else | ifelse(v > 0, "pos", "neg") |
| For döngüsü | for (i in 1:10) { ... } |
| Bir vektör üzerinde for | for (x in v) { ... } |
| While döngüsü | while (x < 100) { ... } |
| Break ile repeat | repeat { if (done) break } |
| Switch | switch(key, a = 1, b = 2) |
| Mantıksal operatörler | &&, ||, ! (skaler); &, | (vektör) |
Fonksiyonlar
Fonksiyonlar birinci sınıftır; değerlendirilen son ifade döndürülür.
| İşlem | Söz dizimi |
|---|---|
| Bir fonksiyon tanımla | add <- function(a, b) { a + b } |
| Açık return | return(a + b) |
| Varsayılan argüman | greet <- function(name = "World") { ... } |
| Variadic argüman | f <- function(...) { sum(...) } |
| Ada göre çağrı | box(w = 2, h = 3) |
| Anonim fonksiyon | function(x) x * 2 |
| Anonim (kısaltma) | \(x) x * 2 |
| Üst düzey bir fonksiyona geçir | sapply(1:3, function(x) x^2) |
Apply ailesi
Açık döngü yazmadan veri üzerinde bir fonksiyon uygulayın.
| Fonksiyon | Ne yapar |
|---|---|
apply(m, 1, sum) | Matris satırları (1) veya sütunları (2) üzerinde uygula |
sapply(v, f) | Bir vektör üzerinde uygula, bir vektöre/matrise sadeleştir |
lapply(v, f) | Bir vektör üzerinde uygula, her zaman bir liste döndür |
vapply(v, f, numeric(1)) | sapply gibi ama denetlenen bir dönüş tipiyle |
mapply(f, a, b) | Birden fazla vektör üzerinde paralel uygula |
tapply(x, group, mean) | Grup başına bir fonksiyon uygula |
Map(f, a, b) | Liste döndüren çok değişkenli uygulama |
Reduce(+, v) | Bir vektörü ikili bir fonksiyonla katla |
Yaygın veri düzenleme ve istatistik fonksiyonları
Veriyi özetlemek ve yeniden şekillendirmek için sık kullanılan temel fonksiyonlar.
| Fonksiyon | Ne yapar |
|---|---|
mean(v) / median(v) | Ortalama / ortanca değer |
sd(v) / var(v) | Standart sapma / varyans |
min(v) / max(v) / range(v) | En küçük / en büyük / her ikisi |
quantile(v) | Kantiller (örn. çeyrekler) |
table(x) | Değerlerin frekans sayıları |
unique(v) / duplicated(v) | Benzersiz değerler / yinelenen bayraklar |
is.na(v) / na.omit(df) | Eksik değerleri bul / düşür |
aggregate(y ~ g, df, mean) | y'yi g grubuna göre özetle |
order(v) | Sıralama için indeks sırası |
cor(x, y) | İki vektör arasındaki korelasyon |
En çok başvurduğunuz R söz dizimi tek sayfada. Bu R hile sayfası, temel dil için hızlı bir başvurudur - atama ve veri tipleri, vektörler ve vektör işlemleri, veri çerçeveleri, faktörler ve listeler, kontrol akışı, fonksiyonlar ve rstats veri analizinde kullanılan apply ailesi.
Buradaki her şey temel R'dir ve sıradan bir kurulumda çalışır - ekstra paket gerekmez. İhtiyacınız olanı kopyalayın ya da her kod parçasını R playground'da canlı deneyin - kurulum gerekmez.
R hile sayfası SSS
Bu R hile sayfası ücretsiz mi?
R vektörleri gerçekten 1 tabanlı indeksli mi?
v[1] ilk elemanı, v[length(v)] ise sonuncuyu döndürür. Negatif indekslerin özel bir anlamı vardır - v[-1], sondan saymak yerine ilk elemanı kaldırır. Bu 1 tabanlı gelenek vektörler, listeler ve veri çerçeveleri için de aynı şekilde geçerlidir.R'de veri çerçevesi (data frame) nedir?
df[rows, columns] olarak indeksler, bir sütunu df$name ile seçer ve str(df) veya summary(df) ile incelersiniz.