将连续数据框转换为分类数据框
Convert Continuous Dataframe to Categorical
我知道如何将数据帧的单个连续变量转换为分类变量。但是如何一次对整个数据框完成呢?似乎应该有一些简单的方法可以做到这一点,但我没有看到。我的数据框有 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
认为你可以使用 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))
我知道如何将数据帧的单个连续变量转换为分类变量。但是如何一次对整个数据框完成呢?似乎应该有一些简单的方法可以做到这一点,但我没有看到。我的数据框有 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
认为你可以使用 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))