Skip to content

Change Selected Variables from Numeric to Factors

1 message · arun

#
Hi ST,
Try this:
set.seed(51)
df1<- as.data.frame(matrix(sample(1:40,60,replace=TRUE),ncol=10))
df2<- df1
check<- c("V3","V7","V9")
?df1[,match(check,colnames(df1))]<-lapply(df1[,match(check,colnames(df1))],as.factor)

str(df1)
#'data.frame':??? 6 obs. of? 10 variables:
# $ V1 : int? 32 9 12 40 9 34
# $ V2 : int? 31 17 39 5 21 28
# $ V3 : Factor w/ 6 levels "1","6","7","10",..: 3 5 1 6 2 4
# $ V4 : int? 26 4 8 18 39 2
# $ V5 : int? 39 21 4 26 6 21
# $ V6 : int? 27 33 35 8 17 8
# $ V7 : Factor w/ 5 levels "4","8","9","24",..: 2 3 4 1 3 5
# $ V8 : int? 4 12 12 32 13 37
# $ V9 : Factor w/ 5 levels "10","31","33",..: 1 4 2 3 5 5
# $ V10: int? 13 26 20 22 14 5

#or
?df2[check]<- lapply(check,function(x) as.factor(df2[[x]]))
# str(df2)
#'data.frame':??? 6 obs. of? 10 variables:
# $ V1 : int? 32 9 12 40 9 34
# $ V2 : int? 31 17 39 5 21 28
# $ V3 : Factor w/ 6 levels "1","6","7","10",..: 3 5 1 6 2 4
# $ V4 : int? 26 4 8 18 39 2
# $ V5 : int? 39 21 4 26 6 21
# $ V6 : int? 27 33 35 8 17 8
# $ V7 : Factor w/ 5 levels "4","8","9","24",..: 2 3 4 1 3 5
# $ V8 : int? 4 12 12 32 13 37
# $ V9 : Factor w/ 5 levels "10","31","33",..: 1 4 2 3 5 5
# $ V10: int? 13 26 20 22 14 5


A.K.
these to factors. What colums I need to change to factors is in another 
vector >check.