【问题标题】:sapply and lapply for changing integer to factorsapply 和 lapply 用于将整数更改为因子
【发布时间】:2017-07-24 08:34:50
【问题描述】:

我有一列是整数,我想把它作为因素。 这是我使用的代码。

vec_integer <- sapply(train, is.integer)
train[] <- lapply(train[,vec_integer==TRUE], as.factor)

这是错误:

无法分配大小为 423 Kb 的向量 总结时出错:无法分配大小为 423 Kb 的向量

谁能帮我理解为什么我尝试的方法不起作用?

【问题讨论】:

    标签: r lapply


    【解决方案1】:

    此问题可能与 lhs 和 rhs 上的大小不等有关

    train[vec_integer] <- lapply(train[vec_integer], factor) 
    

    我们也可以通过tidyverse 做到这一点

    library(tidyverse)
    train %>%
          mutate_if(is.integer, factor)
    

    数据

    train <- structure(list(DATE = structure(c(17371, 17371, 17371, 17372, 
    17372, 17372, 17373, 17373, 17373, 17374, 17374, 17374, 17375, 
    17375, 17375, 17376, 17376, 17376), class = "Date"), VALUE = c(2L, 
    2L, 4L, 3L, 4L, 5L, 2L, 4L, 5L, 2L, 4L, 2L, 4L, 4L, 2L, 5L, 1L, 
    1L), YEAR = c(2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2003L, 
    2004L, 2005L, 2006L, 2007L, 2008L, 2003L, 2004L, 2005L, 2006L, 
    2007L, 2008L)), .Names = c("DATE", "VALUE", "YEAR"), row.names = c(NA, 
    -18L), class = "data.frame")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 2013-11-09
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多