Breyta gagnasafni

Velja breytur:

nyttdf <- select(df, breyta, breyta, breyta)
nyttdf <- select(df, breyta:breyta)
  • Nú haldast þessar breytur og allar þar á milli
nyttdf <- subset(df, select=c(breyta, breyta, breyta))
nyttdf <- df[1:5,] #breytur nr. 1-5 er haldið í nýju gagnasafni

Eitt gildi (level) á tiltekinni breytu:

nyttdf <- df[df$variable == value,]
nyttdf <- filter(df, variable == value)

Eitt gildi (level) á mörgum breytum:

nyttdf <- df [which(df$breyta =="orð" & breyta2 > 50), ] #bara gildi yfir 50 á breytu2
detach(df)

Mörg gildi (levels) á tiltekinni breytu:

nyttdf <- filter(df, breyta %in% c(“gildi1”,“gildi2”,“gildi3”))
  • Viðbótin %>% droplevels() fjarlægir þau gildi sem við erum ekki lengur að nota.

Flóknari leið sem gæti gagnast:

#Bý til hlut sem skilgreinir gildin sem ég vil halda. 
hlutur <- c(“gildi”,“gildi”,“gildi”)
#Sía gildi á breytunni út frá skilgreiningu hlutarins sem ég bjó til og fjarlægi þau gildi sem eru ekki lengur í notkun.
df <- filter(df, breyta %in% hlutur) %>% droplevels()

Mörg gildi á einni breytu, aðeins eitt gildi á annarri:

nyttdf <- filter(df, breyta1 %in% c(gildi1, gildi2, gildi3), breyta2=="gildi") %>% droplevels()
nyttdf <- filter(df, breyta1=="gildi1" | breyta1=="gildi2" | breyta1=="gildi3", breyta2=="gildi") %>% droplevels() #ath. það þarf ekki gæsalappir ef gildin eru tölur í stað orða
  • Athugið að pípur (%>%) koma frá pakkanum dplyr

Bara raðir þar sem gildi breytu eru á ákveðnu bili.

nyttdf <- filter(df, breyta1 >= 50 & breyta1 <=60) #Vel úr raðir sem taka gildi á bilinu 50 til 60 á breytu 1 
nyttdf <- subset(df, breyta >= gildi | breyta2 < gildi, select=c(breyta, breyta))

Sameina gagnaskrár.

nyttdf <- merge(df1, df2)
nyttdf <- rbind(df1, df2) #Þetta sameinar gögn út frá röðum
nyttdf <- cbind(df1, df2) #Þetta sameinar gögn út frá dálkum

Sameina tvær gagnaskrár byggt á eiginleikum

bind_rows(list(df1, df2), .id="nafn hópa")
bind_rows("nafn á hóp1" = df1, "nafn á hóp2" = df2, .id ="hópar")

Fjarlægja breytur

Fjarlægja eina breytu

df$breyta <- NULL

Fjarlægja margar breytur

df <- df %>% select(-c(breyta1, breyta2))
df$breyta1 <- df$breyta2 <- NULL
hlutur <- names(df) %in% c("breyta","breyta","breyta") #Bý til hlut sem skilgreinir þær breytur sem eiga að fara
nyttdf <- df[!hlutur] #Nýtt gagnasafn úr eldra gagnasafni sem inniheldur ekki breyturnar

Annað

Fjarlægja attributes í gagnasafni

df[] <- lapply(df, function(x) { attributes(x) <- NULL; x })

Taka handahófskennt úrtak (sample) úr gagnasafni

  • Ný gildi fást í hvert sinn sem skipunin er keyrð, hægt að nota set.seed(0410) til að fá alltaf sömu niðurstöður. # ath. að gildunum má skipta út fyrir hvað sem er
#Fæ 500 handahófskennd gildi úr df
df <- df[sample(1:dim(df)[1],500,] 
#Fæ aftur 500 handahófskennd gildi úr df
df <- sample_n(df,500) 
hlutur <- df[sample(nrow(df), 500), ]

Fjarlægja missing

df <- na.omit(df)
df <- data[complete.cases(df), ]

Skilgreina missing

#Hér er ég að skilgreina að gildið 99 endurspegli missing.
df$breyta[df$breyta == 99] <- NA