2012-11-22 16 views
11

W R, jak mogę sprawdzić, czy write.csv(my.data.frame, file='test.csv') powiodło się bez ponownego przeczytania go ponownie? Wydaje się, że nic nie zwraca. Myślałem o zrobieniu file.exists('test.csv'), a następnie przechwyceniu znacznika czasu przed i po write.csv() i sprawdzeniu, czy znacznik czasu pliku znajduje się pomiędzy tymi dwoma? Jakieś sugestie?sprawdzanie powodzenia write.csv w R

+1

Można przeczytać kilka pierwszych linii z 'readLines' i sprawdzić, czy nazwy kolumn mecz (lub mieć bardziej skomplikowany test). –

+2

Czy jesteś bardziej zainteresowany tym, czy plik został zapisany (w takim przypadku 'file.exists' na własną rękę zadziała)? Czy chcesz wiedzieć, czy został napisany poprawnie? –

+0

Dobra racja @ sebastian-c - naprawdę przypuszczam, że po prostu chcę przekazać informację zwrotną dla użytkownika, jeśli przekazał złą lokalizację pliku, albo nie było miejsca, lub nie ma uprawnień, lub coś w tym stylu. Odpowiedź So Ali wygląda na to, że jest silnym rywalem. – Sean

Odpowiedz

15

Można użyć funkcji 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" 
Powiązane problemy