【发布时间】:2017-07-24 08:34:50
【问题描述】:
我有一列是整数,我想把它作为因素。 这是我使用的代码。
vec_integer <- sapply(train, is.integer)
train[] <- lapply(train[,vec_integer==TRUE], as.factor)
这是错误:
无法分配大小为 423 Kb 的向量 总结时出错:无法分配大小为 423 Kb 的向量
谁能帮我理解为什么我尝试的方法不起作用?
【问题讨论】:
我有一列是整数,我想把它作为因素。 这是我使用的代码。
vec_integer <- sapply(train, is.integer)
train[] <- lapply(train[,vec_integer==TRUE], as.factor)
这是错误:
无法分配大小为 423 Kb 的向量 总结时出错:无法分配大小为 423 Kb 的向量
谁能帮我理解为什么我尝试的方法不起作用?
【问题讨论】:
此问题可能与 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")
【讨论】: