Brz početak rada sa R: Prebrojavanje vrednosti unutar slučajeva (19. Deo)

SPSS ima opciju Count Values within Cases (prebrojavanje vrednosti unutar slučajeva), ali R nema ekvivalentnu funkciju. Ovde ćemo dati dve funkcije koje se mogu pokazati korisnima. Svaka od njih prebrojava vrednosti u okviru slučajeva u datoteci. Na primer, možemo imati datoteku koja sadrži odgovore u upitniku merene na tzv. Likert skali od 1 do 5. Želimo odrediti na koliko je pitanja ispitanik izabrao opciju 5. Uočiti sintaksu za kreiranje funkcije koju nećemo na ovom mestu posebno komentarisati. Kopirati i pritisnuti ove dve funkcije u R radni prostor. Obe funkcije rade istu stvar, pa možete izabrati ma koju od nih za svoju analizu podataka.
brojslucajeva1 <- function(x, n) { apply(x, 1, function(r) sum(r == n)) }
Ili
brojslucajeva2 <- function(x, n) { rowSums(x == n) }
Iskoristimo sada ove funkcije da bismo prebrojali elemente unutar pravougaone oblasti, tj. datoteke. Koristimo datoteku M.
M <- structure(c(1, 4, 5, 4, 5, 5, 3, 2, 5, 5, 5, 4, 5, 2, 5), .Dim = c(3L, 5L), .Dimnames = list(c("Novak", "Jelena", "Ana"), NULL))
colnames(M) <- c("Pitanje1", "Pitanje2", "Pitanje3", "Pitanje4", "Pitanje5")
M

Prebrojmo koliko ima petica u svakom redu M.
brojslucajeva1(M, 5)

Sada ćemo koristiti drugu funkciju da bismo prebrojali dvojke.
brojslucajeva2(M, 2)

Svaka od ovih dve funkcija daje vektor frekvencija. Sada ćemo odrediti broj petica u prvom redu korišćenjem pravouglih zagrada.
brojslucajeva1(M, 5)[1]

Ili
brojslucajeva1(M, 5)["Novak"]

To nije bilo tako teško! U 20. delu daću druge savete za analizu podataka u R.
Vidimo se kasnije!
David

Dodatak: Korišćeni R kodovi

# Kreirati dve funkcije za prebrojavanje slučajeva u okviru oblasti. 
brojslucajeva1 <- function(x, n) { apply(x, 1, function(r) sum(r == n)) }  
brojslucajeva2 <- function(x, n) { rowSums(x == n) }

# Kreirati datoteku.
M <- structure(c(1, 4, 5, 4, 5, 5, 3, 2, 5, 5, 5, 4, 5, 2, 5), .Dim = c(3L, 5L), .Dimnames = list(c("Novak", "Jelena", "Ana"), NULL)) 
colnames(M) <- c("Pitanje1", "Pitanje2", "Pitanje3", "Pitanje4", "Pitanje5")
M

# Prebrojati petice u svakom redu datoteke M.
brojslucajeva1(M, 5)

# Prebrojati dvojke u svakom redu datoteke M.
brojslucajeva2(M, 2)

# Prebrojati petice u prvom redu. 
brojslucajeva1(M, 5)[1]

# Prebrojati petice u prvom redu. 
brojslucajeva1(M, 5)["Novak"]