Menu

R'de Veri Çerçeveleri: Oluşturma, İnceleme ve Sütunlara Erişim

Veri çerçevesi R'nin hesap tablosudur: her biri kendi türünde, eşit uzunlukta isimli sütunlar. Nasıl kurulur, str() ve head() ile nasıl tartılır ve sütunlara, satırlara, hücrelere nasıl ulaşılır.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Veri Çerçevesi, Sütunlardan Oluşan Bir Listedir

Veri çerçevesi R'nin tablosudur: gözlem satırları, değişken sütunları. R'nin hesap tablosudur ve neredeyse tüm gerçek verinin geldiği biçimdir - kişi başına, ölçüm başına, işlem başına bir satır; öznitelik başına bir sütun.

Yapısal olarak veri çerçevesi, üzerine satır/sütun davranışı eklenmiş, eşit uzunlukta vektörlerden oluşan bir listedir. Bu tek olgu kurallarının çoğunu açıklar: her sütunun tek bir türü vardır (o bir vektördür), farklı sütunlar farklı türlerde olabilir (o bir listedir) ve her sütun aynı uzunlukta olmalıdır ("çerçeve" kısmı budur).

Bir veri çerçevesini, data.frame() fonksiyonuna isimli vektörler vererek kurarsınız:

Metin, sayı ve mantıksal değerler yan yana - bir matrisin tutamayacağı karışım. Pratikte veriyi nadiren böyle elle yazarsınız; tablolar genellikle read.csv ya da bir veritabanı üzerinden gelir. Ama aşağıdaki her şey, veri çerçevesi nereden gelirse gelsin aynı şekilde geçerlidir.

Bir Veri Çerçevesini Tartmak

Bakmadığınız bir veri kümesi üzerinde asla hesap yapmayın. R'nin inceleme takımı kısadır ve refleks hâline getirmeye değer:

  • str(), yeni yüklenen her veride ilk çalıştırılacak olandır: sütun başına türü ve ilk değerleriyle bir satır. Tek bir başıboş girdi yüzünden aslında character olarak okunmuş "sayı" sütununu burada yakalarsınız.
  • nrow() / ncol() boyutları verir; names() sütun adlarını listeler.
  • summary() sütun başına istatistikler verir - sayılar için min/medyan/ortalama/maks, mantıksallar ve faktörler için sayımlar.
  • head(df) ve tail(df) ilk ve son altı satırı yazdırır - gerçek veri kümeleri tamamı yazdırılamayacak kadar büyüdüğünde vazgeçilmezdir. head() fonksiyonunu aşağıda yerleşik bir veri kümesi üzerinde iş başında göreceksiniz.

Bir Sütunu Almanın Üç Yolu

Sütun erişimi temel işlemdir ve R size üç yazım sunar:

  • people$age - gündelik biçim: kısa, okunabilir, çoğu düzenleyicide otomatik tamamlanır.
  • people[["age"]] - aynı sonuç, ama isim bir değişkenden gelebilir (col <- "age"; people[[col]]); $ bunu yapamaz. Fonksiyonların içinde bunu tercih edin.
  • people[, "age"] - matris tarzı: virgülden önce satırlar (boş = hepsi), sonra sütunlar.

Üçü de sütunu düz bir vektör olarak döndürür ve mean(people$age) için hazırdır. Parçacıktaki dördüncü yazım ise tuzaktır: tek köşeli parantezle people["age"], vektör değil tek sütunluk bir veri çerçevesi döndürür - listelerdeki aynı [ ve [[ ayrımı, çünkü veri çerçevesi zaten bir listedir. Bir matematik fonksiyonu girdinizin sayısal olmadığından şikâyet ederse parantezlerinizi kontrol edin.

Satırlar ve Hücreler

[satır, sütun] gösterimi, tablonun herhangi bir dilimine ulaşır:

people[2, ] tüm ikinci satırdır (tek satırlık bir veri çerçevesi olarak - satırlar türleri karıştırdıkları için çerçevelerini korur). people[2, "name"] tek bir hücredir. Satır numaralarından oluşan bir vektör birkaç satır çeker.

Son satır önemli olandır: bir sütun üzerindeki mantıksal koşul satırları seçer - burada 28 yaşından büyük herkesi. Bu satırları-maskeleme kalıbı, R'deki tüm veri filtrelemenin temelidir ve kendi yazısını hak eder: subset() ve çok koşullu filtreler dahil tam ele alış için bkz. filtreleme ve alt küme alma.

Sütun Ekleme ve Silme

Bir veri çerçevesi sütunlardan oluşan bir liste olduğu için sütunlar düz atamayla gelir ve gider:

Yeni bir isme atama yapmak sütunu ekler; vektör nrow() ile eşleşmelidir (ya da 1 uzunluğunda olmalıdır, o da her satırı doldurmak için geri dönüştürülür). İkinci ekleme, deyimsel hamleyi gösterir: mevcut sütunlardan hesaplanan yeni sütunlar - bütün sütun boyunca aynı anda vektörleştirilmiş matematik kullanarak. NULL atamak bir sütunu tamamen siler.

Sütun değerleri de aynı şekilde üzerine yazılabilir - people$age <- people$age + 1 herkesi bir yaş büyütür.

Yerleşik Veri Kümeleri ve Tibble Üzerine Bir Not

R, önceden yüklenmiş alıştırma veri kümeleriyle gelir; böylece yukarıdaki her şeyi hiçbir şey içe aktarmadan deneyebilirsiniz. Her eğitimde karşılaşacağınız ikisi mtcars (32 araba, 11 sayısal değişken) ve iristir (150 çiçek, 4 ölçüm artı bir tür faktörü):

head() ekmeğini çıkarıyor: altı satır, ekranı boğmadan işin biçimini size söyler. Bu veri kümeleri ideal oyun alanlarıdır - bir fonksiyonun nasıl davrandığından emin olmadığınızda, onu kendi verinize doğrultmadan önce mtcars üzerinde deneyin.

Tidyverse'e dokunur dokunmaz karşılaşacağınız bir terim: tibble, tidyverse'ün veri çerçevesi yorumu. Aynı kavram, daha kibar davranış - yazdırma yalnızca ilk on satırı sütun türleriyle birlikte gösterir ve kısmi isim eşleştirmesi yoktur. tibble() ile oluşturulur ya da readr/dplyr fonksiyonlarınca döndürülür:

library(tibble)
tibble(name = c("Rosa", "Ken"), age = c(30, 41))
#> # A tibble: 2 x 2
#>   name    age
#>   <chr> <dbl>
#> 1 Rosa     30
#> 2 Ken      41

Bu yazıdaki her şey - $, str(), sütun ekleme, mantıksal satır maskeleri - tibble'larda değişmeden çalışır. Tibble, üzerine ekstra cila çekilmiş bir veri çerçevesidir; veri çerçevelerini öğrenirseniz ikisini birden öğrenmiş olursunuz.

Buradan Ne Çıkarıyorsunuz

  • Veri çerçevesi eşit uzunlukta sütunlardan oluşan bir listedir: sütun başına tek tür, tablo genelinde karışık türler - R'nin hesap tablosu.
  • Hesaplamadan önce inceleyin: önce str(), sonra head(), summary(), nrow()/ncol()/names().
  • df$col, df[["col"]] ve df[, "col"] sütunu vektör olarak döndürür; tek köşeli parantezli df["col"] bir veri çerçevesi döndürür.
  • df[satırlar, sütunlar] her şeyi dilimler; virgülden önceki mantıksal maske satırları filtreler.
  • Sütunları atamayla ekleyin (genellikle diğer sütunlardan hesaplanır); NULL ile silin; mtcars üzerinde alıştırma yapın.

Sırada: eksik değerler - NA ne demektir, hesaplamalara neden yayılır ve nasıl ele alınır.

Sıkça Sorulan Sorular

R'de veri çerçevesi nasıl oluşturulur?

data.frame() fonksiyonuna isimli, eşit uzunlukta vektörler geçirin: df <- data.frame(name = c("Rosa", "Ken"), age = c(30, 41)). Her vektör bir sütun olur. Pratikte çoğu veri çerçevesi elle yazılmaz - read.csv() ya da bir veritabanından gelir - ama yapı aynıdır.

R'de bir veri çerçevesinin sütununa nasıl erişilir?

Üç yol: df$age (hızlı ve okunabilir), df[["age"]] (aynı sonuç, sütun adı bir değişkende saklandığında çalışır) ve df[, "age"] (matris tarzı). Üçü de sütunu düz bir vektör olarak döndürür. Tek köşeli parantezle df["age"] ise bunun yerine tek sütunluk bir veri çerçevesi döndürür - sık rastlanan bir kafa karışıklığı kaynağı.

str() bir veri çerçevesi için ne gösterir?

Sütun başına bir satır: adı, türü ve ilk birkaç değeri, ayrıca en üstte satır ve sütun sayıları. Bir sütunun sayısal mı yoksa metin olarak mı okunduğunu görmenin en hızlı yoludur; bu yüzden str(), yeni yüklenen her veri kümesinde çalıştıracağınız ilk şey olmalıdır.

R'de bir veri çerçevesine nasıl sütun eklenir?

Henüz var olmayan bir isme atama yapın: df$score <- c(88, 75, 93). Vektör, satır sayısıyla eşleşmelidir (ya da 1 uzunluğunda olmalı, o da her satıra geri dönüştürülür). Bir sütunu silmek için NULL atayın: df$score <- NULL.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA