如何将所有列的数据类型从整数转换为 R 中的因子?
要将所有列的数据类型从整数转换为因子,我们可以使用lapply函数和因子函数。
例如,如果我们有一个名为df的数据框,它包含所有整数列,那么我们可以使用下面给定的命令将所有列的数据类型转换为因子-
df<-data.frame(lapply(df,factor))
示例1
以下代码段创建了一个示例数据框-
x1<-rpois(20,1) x2<-rpois(20,2) df1<-data.frame(x1,x2) df1
创建以下数据框-
x1 x2 1 1 4 2 3 0 3 0 1 4 1 1 5 1 2 6 1 1 7 1 2 8 3 2 9 2 3 10 3 5 11 1 4 12 0 1 13 2 0 14 2 2 15 0 1 16 3 0 17 0 2 18 0 3 19 1 1 20 0 3
要将所有列的数据类型从整数转换为因子,请将以下代码添加到上述代码段中-
x1<-rpois(20,1) x2<-rpois(20,2) df1<-data.frame(x1,x2) str(df1)输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
'data.frame': 20 obs. of 2 variables: $ x1: int 1 3 0 1 1 1 1 3 2 3 ... $ x2: int 4 0 1 1 2 1 2 2 3 5 ...
要将df1中列的数据类型转换为因子,请将以下代码添加到上述代码段中-
x1<-rpois(20,1) x2<-rpois(20,2) df1<-data.frame(x1,x2) df1<-data.frame(lapply(df1,factor)) str(df1)
输出
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
'data.frame': 20 obs. of 2 variables: $ x1: Factor w/ 4 levels "0","1","2","3": 2 4 1 2 2 2 2 4 3 4 ... $ x2: Factor w/ 6 levels "0","1","2","3",..: 5 1 2 2 3 2 3 3 4 6 ...
示例2
以下代码段创建了一个示例数据框-
y1<-sample(0:1,20,replace=TRUE) y2<-sample(1:4,20,replace=TRUE) df2<-data.frame(y1,y2) df2
创建以下数据框-
y1 y2 1 0 2 2 1 3 3 0 2 4 0 2 5 1 3 6 0 3 7 0 2 8 1 3 9 0 4 10 0 1 11 0 4 12 0 4 13 0 1 14 1 2 15 0 1 16 0 1 17 1 4 18 1 2 19 1 3 20 1 2
要将所有列的数据类型从整数转换为因子,请将以下代码添加到上述代码段中-
y1<-sample(0:1,20,replace=TRUE) y2<-sample(1:4,20,replace=TRUE) df2<-data.frame(y1,y2) str(df2)输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
'data.frame': 20 obs. of 2 variables: $ y1: int 0 1 0 0 1 0 0 1 0 0 ... $ y2: int 2 3 2 2 3 3 2 3 4 1 ...
要将df2中列的数据类型转换为因子,请将以下代码添加到上述代码段中-
y1<-sample(0:1,20,replace=TRUE) y2<-sample(1:4,20,replace=TRUE) df2<-data.frame(y1,y2) df2<-data.frame(lapply(df2,factor)) str(df2)输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
'data.frame': 20 obs. of 2 variables: $ y1: Factor w/ 2 levels "0","1": 1 2 1 1 2 1 1 2 1 1 ... $ y2: Factor w/ 4 levels "1","2","3","4": 2 3 2 2 3 3 2 3 4 1 ...