【问题标题】:How to change a R numeric data frame into a data frame of ordered factors?如何将 R 数值数据框更改为有序因子的数据框?
【发布时间】:2020-06-13 15:22:24
【问题描述】:

我有 77 个数值变量,它们在技术上是有序的因子变量。 我知道我可以执行以下操作来将数据框df 的第一列更改为有序因子变量:

df[,1]<-as.ordered(df[,1])

但是有没有一种快速的方法可以将 77 个变量的整个数据框转换为有序因子变量的数据框?

谢谢,

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    我们可以使用lapply 遍历数据集列,应用该函数并将其分配回原始数据集

    df[] <- lapply(df, as.ordered)
    

    或dplyr

    library(dplyr)
    df <- df %>%
             mutate_all(as.ordered)
    

    【讨论】:

      【解决方案2】:

      对于这种情况,for 循环足够好且足够快。

      for (i in 1:ncol(df)) df[, i] <- as.factor(df[, i])
      

      (很可能 - 根据我的经验 - 比任何 lapply 或任何 apply-family 解决方案都快 - 因为避免在 R 中构建非常慢的列表。)

      对于1:ncol(df),您也可以使用seq_along(df)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-25
        • 2013-11-09
        • 1970-01-01
        • 2019-07-24
        • 1970-01-01
        • 2020-12-24
        • 2019-03-30
        • 1970-01-01
        相关资源
        最近更新 更多