如何在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 ...

更新于:2021年11月12日

3K+浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告