将连续数据框转换为分类

时间:2018-07-19 18:02:43

标签: r categorical-data continuous

我知道如何将数据帧的各个连续变量转换为分类变量。但是,如何一次为整个数据帧完成此操作呢?似乎应该有一些简单的方法来执行此操作,但我没有看到它。我的数据框有34行和65个变量,所有变量的取值为0、1或2。我希望每个值都是分类的。在所有变量中,0、1或2的含义相同。以下是一些R代码,可用于重新创建数据的一小部分:

continuous<-data.frame(c(0,1,0,2),c(2,2,0,0),c(1,0,1,0),c(2,1,0,0))
colnames(continuous)<-c('A','B','C','D')
continuous$A<-as.factor(continuous$A) #This works, for individual variables
continuous<-as.factor(continuous) #This throws an error for the whole dataframe

1 个答案:

答案 0 :(得分:1)

认为您可以对此应用lapply ...

continuous<-data.frame(c(0,1,0,2),c(2,2,0,0),c(1,0,1,0),c(2,1,0,0))
colnames(continuous)<-c('A','B','C','D')
c2 <- lapply(continuous, as.factor)
str(c2)
List of 4
 $ A: Factor w/ 3 levels "0","1","2": 1 2 1 3
 $ B: Factor w/ 2 levels "0","2": 2 2 1 1
 $ C: Factor w/ 2 levels "0","1": 2 1 2 1
 $ D: Factor w/ 3 levels "0","1","2": 3 2 1 1

尽管您可能想要数据框或小标题而不是列表,所以

c2 <- data.frame(lapply(continuous, as.factor))