问题 检查R中write.csv的成功


在R中,我该如何验证 write.csv(my.data.frame, file='test.csv') 没有重新阅读它是成功的?它似乎没有返回任何东西。我在考虑做一个 file.exists('test.csv') 然后抓住之前和之后的时间戳 write.csv() 并检查文件上的时间戳是否在两者之间?有什么建议么?


992
2017-11-22 11:28


起源

你可以阅读前几行 readLines 并查看列名是否匹配(或具有更复杂的测试)。 - Roman Luštrik
如果文件是写的,你是否更感兴趣(在这种情况下 file.exists 靠自己会工作)?或者你想知道它是否写得正确? - sebastian-c
好点@sebastian -c - 我想我只是想向用户提供反馈,如果他们传递了一个错误的文件位置,或者没有空间,没有权限,或类似的东西。因此阿里的回答看起来像是一个强有力的竞争者。 - Sean


答案:


您可以使用该功能 try()

res <- try(write.csv(1:100, "SOME GOOD PATH/temp.csv"))
is.null(res)
# [1] TRUE
res <- try(write.csv(1:100, "SOME BAD PATH/temp.csv"))
is.null(res)
# [1] FALSE
class(res)
# [1] "try-error"

15
2017-11-22 13:04