我试图替换基本 R 函数write.table()
with data.table::fwrite()
加快写入速度,但该函数抱怨说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
Created on 2019-06-17 by the reprex package https://reprex.tidyverse.org (v0.3.0)
感谢@s.brunel 和@Roland,这里有两个可行的解决方案:
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")
# solution 1
data.table::fwrite(
x = data.table::data.table(sample_txt),
file = here::here("test.txt"),
sep = ";",
col.names = FALSE,
row.names = FALSE
)
# solution 2
data.table::fwrite(
x = list(sample_txt),
file = here::here("test.txt"),
sep = ";",
col.names = FALSE,
row.names = FALSE
)
Created on 2019-06-17 by the reprex package https://reprex.tidyverse.org (v0.3.0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)