【发布时间】:2014-10-01 15:58:28
【问题描述】:
我想使用 data.table 包的快速 fread 功能来加载一个巨大的 csv 文件。加载后,我想将字符串变量转换为因子。但是当我想像这样对加载的文件进行变异时:
library(data.table)
library(dplyr)
df <- fread("df.csv")
df <- mutate(df, name = as.factor(name))
我得到这个错误:
Error in mutate.data.table(df, df = df, df = , :
could not find function "copy
我尝试在执行 mutate 之前分离 data.table 包,但这无济于事。我仍然得到那个错误。
有谁知道如何处理这个问题?非常感谢!
【问题讨论】:
-
无法在我的机器上重现这个:
library(data.table); library(dplyr);dt <- data.table(iris); dt <- mutate(dt, name = as.factor(Species)) -
fyi,
data.table方式是df[, name := as.factor(name)](顺便说一句,不会复制和修改) -
为什么要混淆 dplyr 和 data.table?
data.table是一款很棒的软件 - 坚持下去,这是最好的.... 向 data.table 致敬! -
晦涩的 sql 语言 + 晦涩的 r 语言 = 很棒的软件!
-
data.table 取代了 *plyr 和 reshape 的需要,花时间学习它的语法,这是自切片面包以来最好的东西
标签: r data.table dplyr