gpt4 book ai didi

r - 在同一 session 中使用包 dplyr 和 data.table 会导致 mutate() 中的复制错误

转载 作者:行者123 更新时间:2023-12-02 09:36:04 25 4
gpt4 key购买 nike

我想使用data.table包的快速读取功能来加载一个巨大的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

我尝试在进行变异之前分离 data.table 包,但这没有帮助。我仍然收到该错误。

有谁知道如何处理这个问题吗?非常感谢!

最佳答案

函数copy来自data.table包。因此,当您分离 data.table时,dplyr无法找到函数copy(由于某种原因,它是未正确导入)。

正如 Hadley 在评论中所说,这实际上是 dplyr 中的一个错误,在 dplyr 0.3 中不应再发生。

重现您的错误:

library(data.table)
library(dplyr)

# Creating the data.table
df <- data.table(name = 1:10)

#detaching data.table, this will cause the error
detach(package:data.table)

#dplyr can't find copy
mutate(df, name=as.factor(name))

Error in mutate.data.table(df, name = as.factor(name)) :
could not find function "copy"

请注意,加载两个包时不会发生错误:

library(data.table)
library(dplyr)
df <- data.table(name = 1:10)
mutate(df, name=as.factor(name))
name
1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
10: 10

关于r - 在同一 session 中使用包 dplyr 和 data.table 会导致 mutate() 中的复制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26145525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com