【发布时间】:2019-06-17 12:10:54
【问题描述】:
我试图用 data.table::fwrite() 替换基本 R 函数 write.table() 以加快编写速度,但该函数抱怨说
is.list(x) is not TRUE。
我提供的 fwrite() 期望的输入有什么问题,但 write.table() 静默接受?
sample_txt <- c("Obligationenrecht\n4 Die Bankenkommission kann unter den Voraussetzungen von Absatz 2 die\nAnwendung der vom Bundesrat anerkannten Standards zur Rechnungslegung im\nBereich der Banken einschränken.\n9. Börsengesetz vom 24. März 199530\nArt. 16 Rechnungslegung\n1 Die Bestimmungen des Bankengesetzes vom 8. November 193431 über die\nRechnungslegung für Banken gelten sinngemäss auch für Effektenhändler.\n2 Der Bundesrat kann von den Bestimmungen nach Absatz 1 abweichen, wenn")
write.table(
sample_txt,
file = here::here("test.txt"),
sep = "\t",
row.names = FALSE,
col.names = FALSE
)
data.table::fwrite(
sample_txt,
file = here::here("test.txt"),
sep = ";",
col.names = FALSE,
row.names = FALSE
)
#> Error in data.table::fwrite(sample_txt, file = here::here("test.txt"), : is.list(x) is not TRUE
由reprex package (v0.3.0) 于 2019 年 6 月 17 日创建
【问题讨论】:
-
您没有表格数据。为什么不简单地使用 write()?无论如何,如果您坚持使用 fwrite(),请将您的数据包装在 data.table() 中。
-
它适用于
sample_txt <- list(...) -
@Roland 谢谢你的建议!我正在做一些基准测试,这就是为什么我想让这个特殊的解决方案发挥作用——
write()在这种情况下更快也更适合。
标签: r data.table