Section 35 R Codes: Data Management


35.1 Select Columns

DF$Age

DF[, c('Age','Vac')]

DF[, c(2,4)]

DF[, -4]

DF[, -c(2,4)]

index <- which(names(DF) == 'Age')

index <- which(names(DF) %in% c('Age','Vac'))


35.2 Filter Rows

DF[DF$ID == 'S3',]

DF$Age[DF$ID == 'S25']

sum(DF$Age > 1.5)
sum(DF$Age > 1.5, na.rm = TRUE)


index <- which(DF$Age > 1.5)
DF[index,]

index <- DF$Sex == 'M' & !DF$Vac
DF[index,]

index <- DF$Sex == 'F' & DF$Vac
sum(index)

index <- DF$Age > 1.5 & DF$Vac
DF[index,]


35.3 Arrange Rows

index <- order(DF$Age, decreasing=FALSE)
DF[index,]


index <- order(DF$Wt, decreasing=TRUE)
DF[index,]


index <- order(DF$Age, DF$Wt, na.last=TRUE, decreasing=c(FALSE,TRUE), method='radix') 
DF[index,]


index <- order(DF$Vac, decreasing = FALSE)
DF[index,]


35.4 Arrange Columns

DF[, c('ID','Sex','Age','Wt','Vac')]

DF[,c(1,4,3,2,5)]


35.5 Rename Rows & Columns

DF1 <- DF

row.names(DF1) <- paste0('R', 1:100)

colnames(DF1)[2] <- 'Weight_kg'

names(DF1)[3] <- 'Age_yr'


35.6 Apply Functions on Columns

DF1 <- DF

DF1$Weight_g <- DF1$Wt * 1000

# DF1$c_Age <- scale(DF1$Age, center = TRUE)
DF1$c_Age <- round(DF1$Age - mean(DF1$Age, na.rm=TRUE), digits = 2)