Oto mój kod R:R write (append = TRUE) nadpisuje zawartość pliku
out = file('testfile')
write('hello', file=out, append=T)
write('world', file=out, append=T)
close(out)
Kiedy uruchomić ten (używając R 3.1.0), testfile zawiera następnie:
world
Spodziewałem :
hello
world
To samo zachowanie się dzieje, jeśli mogę użyć cat()
zamiast write()
. Czemu? Jak mogę dołączyć do plików?
To dobrze i naprawdę niesamowite. Najpierw ten plik (nazwa) nie otwiera pliku, ale poza tym append = T nie robi tego, co mówi (jest to bezpośredni błąd, który bym powiedział, ciekawy, jeśli się zgodzisz). –
Wydaje mi się, że plik (...) otwiera plik dla * czytania * i że podczas pisania do pliku już otwartego do odczytu, R próbuje obejść problem, a obejście daje dziwne wyniki. 'append = TRUE' robi to, co ma zrobić, jeśli wcześniej nie otwierasz pliku z' file', ale po prostu napisz 'write (" Hello "," filename ", append = TRUE)'. – JohnB
Dobrze, rozumiem. Biorąc pod uwagę to obejście, czy zgadzasz się, że byłoby lepiej zrobić tak, aby zapis (append = T) z nie otwartym połączeniem pliku otworzy plik do dołączenia, zamiast go zastąpić? Wygląda na to, że warto byłoby załatać poprawkę do R. –