gpt4 book ai didi

r - 将 data.frame 转换为 ff

转载 作者:行者123 更新时间:2023-12-04 11:03:39 26 4
gpt4 key购买 nike

我想使用 as.ffdf 将 data.frame 转换为 ff 对象,如 here 所述

df.apr=as.data.frame(df.apr) # from data.table to data.frame
cols=df.apr[1,]
cols=sapply(cols,class)
df_apr=as.ffdf(df.apr,vmode=cols)

给出一个错误:
Error in ff(initdata = initdata, length = length, levels = levels, ordered = ordered,
: vmode 'numeric' not implemented

如果没有“vmode”参数,则会出现以下错误:
Error in ff(initdata = initdata, length = length, levels = levels, ordered = ordered, 
: vmode 'character' not implemented

然而,写入表格然后直接读入 ff 有效:
write.table(df.apr,file='df_apr.txt',sep='\t',row.names=F)
df.apr.ff=read.table.ffdf(file='df_apr.txt',header=F,VERBOSE=T)

但这很耗时[而且很笨拙]。
有没有更好的办法?

最佳答案

如果您想知道可以在 ff 中使用的所有可能的 vmode,请在控制台输入以下内容。

require(ff)
.vimplemented

你会看到数字和字符模式不在这些中。数字转换为 double ,字符转换为因子。所以在你的问题中,你真的不需要自己指定 vmodes。只要字符被编码为因子,您就可以在 data.frame 上使用 as.ffdf。所以这会起作用。
df.apr=as.data.frame(df.apr, stringsAsFactors=TRUE)
df_apr=as.ffdf(df.apr)

供引用。如果您的数据来自平面文件,请考虑使用 read.table.ffdf 或者如果它来自 SQL 数据源,您可以使用 ETLUtils 包中的 read.dbi.ffdf 或 read.odbc.ffdf。如果它是通过 Hive 来自 Hadoop,您可以使用 ETLUtils 包中的 read.jdbc.ffdf。

关于r - 将 data.frame 转换为 ff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17251064/

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