使用R的here函数导出CSV失败,求问错误原因及解决方法
问题分析与解决
你的错误在于把write.csv的参数传递给了here::here()函数,导致here()接收到了命名参数row.names=FALSE,而它只允许传入无命名的路径片段,这就是报错“Arguments must be unnamed”的根源。
正确写法
把here()生成的路径作为write.csv的file参数,row.names=FALSE作为write.csv的独立参数传递:
write.csv(df1, file = here::here("Output data", "df1.csv"), row.names = FALSE)
错误原因拆解
here::here("Output data", "df1.csv", row.names=FALSE)中,row.names=FALSE是命名参数,不属于路径的一部分,here()无法识别,会把它当成路径片段拼接,生成异常路径(比如把row.names=FALSE当成文件名的一部分)。write.csv的参数顺序是:第一个是要导出的数据框,第二个是目标文件路径,之后是其他配置参数(比如row.names)。你之前的写法只给write.csv传了一个参数(错误的here()调用结果),同时还把row.names塞给了here(),完全搞混了两个函数的参数范围。
内容的提问来源于stack exchange,提问作者KT_1
相关产品推荐
相关产品推荐

