我知道如何将数据帧的各个连续变量转换为分类变量。但是,如何一次为整个数据帧完成此操作呢?似乎应该有一些简单的方法来执行此操作,但我没有看到它。我的数据框有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
答案 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))