Veri kümelerini ve veri nesnelerini değiştirme

SAS Kullananlar İçin R

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

car paketinden Davis veri kümesini yükleyin

  • car paketinden Davis veri kümesini yükleyin
  • İlk 6 satırı görüntüleyin
library(car)
head(Davis)
  sex weight height repwt repht
1   M     77    182    77   180
2   F     58    161    51   159
3   F     53    161    54   158
4   M     68    177    70   175
5   F     59    157    59   155
6   M     76    170    76   165
SAS Kullananlar İçin R

sas veri adımı r mutate bmi ekle davismod oluştur

SAS Kullananlar İçin R

sas veri adımı r mutate bmi ekle davismod oluştur

SAS Kullananlar İçin R

sas veri adımı r mutate bmi ekle davismod oluştur

SAS Kullananlar İçin R

Yeni değişken hesaplama - vücut kitle indeksi

davismod <- Davis %>%
  mutate(bmi = weight / ((height/100))^2)

head(davismod)
  sex weight height repwt repht    bmi
1   M     77    182    77   180 23.245
2   F     58    161    51   159 22.375
3   F     53    161    54   158 20.446
4   M     68    177    70   175 21.705
5   F     59    157    59   155 23.936
6   M     76    170    76   165 26.297
SAS Kullananlar İçin R

Yeni değişken hesaplama - mantıksal işleçler

davismod <- davismod %>%
  mutate(diffht = repht - height) %>%
  mutate(difflow = diffht <= -3)

davismod %>%
  head()
  sex weight height repwt repht      bmi diffht difflow
1   M     77    182    77   180 23.24598     -2   FALSE
2   F     58    161    51   159 22.37568     -2   FALSE
3   F     53    161    54   158 20.44674     -3    TRUE
4   M     68    177    70   175 21.70513     -2   FALSE
5   F     59    157    59   155 23.93606     -2   FALSE
6   M     76    170    76   165 26.29758     -5    TRUE
SAS Kullananlar İçin R

ifelse ile yeniden kodlama

davismod <- davismod %>%
  mutate(bmicat = ifelse(test = bmi < 25, yes = "1. underwt/norm",
                         no = ifelse(bmi < 30, "2. overwt", "3. obese")))

# display rows 15 to 21
davismod %>% slice(15:21)
  sex weight height repwt repht      bmi diffht difflow          bmicat
1   F     52    163    57   160 19.57168     -3    TRUE 1. underwt/norm
2   F     65    166    66   165 23.58833     -1   FALSE 1. underwt/norm
3   M     92    187   101   185 26.30902     -2   FALSE       2. overwt
4   F     62    168    62   165 21.96712     -3    TRUE 1. underwt/norm
5   M     76    197    75   200 19.58309      3   FALSE 1. underwt/norm
6   F     61    175    61   171 19.91837     -4    TRUE 1. underwt/norm
7   M    119    180   124   178 36.72840     -2   FALSE        3. obese
SAS Kullananlar İçin R

Nesne türünü test et ve doğrula

davismod %>%
  select(bmi, bmicat) %>%
  head()
       bmi          bmicat
1 23.24598 1. underwt/norm
2 22.37568 1. underwt/norm
3 20.44674 1. underwt/norm
4 21.70513 1. underwt/norm
5 23.93606 1. underwt/norm
6 26.29758       2. overwt
davismod %>%
  pull(bmi) %>%
  is.numeric()
[1] TRUE
davismod %>%
  pull(bmicat) %>%
  is.numeric()
[1] FALSE
SAS Kullananlar İçin R

Nesne türünü test et ve doğrula

davismod %>%
  pull(difflow) %>%
  is.vector()
is.data.frame(davismod)
is.matrix(davismod)

 

[1] TRUE
[1] TRUE
[1] FALSE
SAS Kullananlar İçin R

Nesne türlerini dönüştürme - zorlama (coercion)

davismod %>%
  pull(difflow) %>%
  head()
[1] FALSE FALSE TRUE FALSE FALSE TRUE
  • R'de birçok as.xxx() işlevi vardır
  • Bir nesne türünü diğerine dönüştürmek için
  • Mantıksalı sayısala dönüştürün
davismod %>%
  pull(difflow) %>%
  as.numeric() %>%
  head()
[1] 0 0 1 0 0 1
SAS Kullananlar İçin R

Nesne türlerini dönüştürme - zorlama (coercion)

davismod %>%
  select(weight, height) %>%
  head(4)
  weight height
1     77    182
2     58    161
3     53    161
4     68    177

Matrise dönüştürün, class() ile kontrol edin

davismod %>%
  select(weight, height) %>%
  as.matrix() %>%
  class()
[1] "matrix"
SAS Kullananlar İçin R

Hadi abalone veri kümesini yeni değişkenlerle güncelleyelim

SAS Kullananlar İçin R

Preparing Video For Download...