【问题标题】:Convert Continuous Dataframe to Categorical将连续数据框转换为分类
【发布时间】:2018-07-19 18:02:42
【问题描述】:

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

【问题讨论】:

  • 我无法复制这个。虽然你必须先用gather 重塑它,然后让你的价值观成为因素。

标签: r categorical-data continuous


【解决方案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))

【讨论】:

    猜你喜欢
    • 2016-09-04
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 2021-05-08
    • 2018-03-23
    • 2019-11-24
    相关资源
    最近更新 更多