Funkcje write.table() i write.csv() również eksportują macierze i ramki danych. Obie pełnią zasadniczo tę samą funkcję, ale mają różne ustawienia domyślne. Wszystkie wartości domyślne metody write.table() można zmienić. W przypadku metody write.csv() nie można zmienić wartości domyślnych append, col.names, sep, dec i qmethod. (Podobnie jak w przypadku read.csv() istnieje również funkcja write.csv2() dla użytkowników europejskich. Funkcja write.csv2() używa średnika jako separatora i przecinka jako separatora, ale poza tym jest to to samo co write .csv()). Funkcje przyjmują argumenty x, file, append, quote, sep, eol, na, dec, row.names, col.names i qmethod. Argument x to obiekt do wyeksportowania i musi to być obiekt, który można przekształcić w ramkę danych. Argument file podaje lokalizację, do której należy wyeksportować. W przypadku plików zewnętrznych plik ma charakter znaku, a adres na dysku twardym jest względny do obszaru roboczego lub bezwzględny. Jeśli plik równa się „”, funkcje eksportują do konsoli. Domyślna wartość pliku to „”. Argument append jest argumentem logicznym. Jeśli dołączenie ma wartość TRUE, to plik jest dołączany z nową ramką danych. Jeśli FALSE, plik jest nadpisywany. Wartość domyślna to FALSE. Argument quote jest logicznym lub numerycznym wektorem numerów kolumn i podaje zasady umieszczania cudzysłowów wokół elementów. Wartość domyślna to TRUE. Argument sep jest argumentem znakowym i podaje separator, który ma być używany między elementami eksportowanych danych. Separator jest umieszczony w cudzysłowie. Dla read.table() wartością domyślną jest biały znak. W przypadku read.csv() wartością jest przecinek. Argument eol jest argumentem znaku trybu i podaje ogranicznik końca linii. Domyślnie eol jest równe „\ n”. Prawidłowa wartość eol zależy od systemu operacyjnego. Użyj „\ n” dla Windows, „\ r” dla OS X i „\ r \ n” dla Linux. Argument na jest również argumentem znakowym i podaje ciąg, który ma zostać wyprowadzony w przypadku braku danych. Wartość domyślna to NA. Argument dec jest kolejnym argumentem znakowym i podaje znak, który ma być użyty jako kropka dziesiętna. Domyślnie dec = „.”.
Argument row.names jest wartością logiczną lub wektorem znaków nazw wierszy. Zauważ, że metody write.table() i write.csv() traktują nazwy wierszy inaczej, jeśli parametr row. nazwy są ustawione na TRUE lub na wektor znaków nazw. Jeśli kolumna nazw wierszy znajduje się w wyeksportowanej ramce danych, funkcja write.table() nie tworzy pustego ciągu znaków dla nazwy kolumny z nazwami wierszy, natomiast funkcja write.csv() tak. Jeśli row.names jest równe FALSE, nie ma różnicy między nimi pod względem nazw wierszy, ponieważ żadne nazwy wierszy nie są eksportowane. Jeśli nie podano nazw wierszy, nazwy wierszy nie występują w data.frame (na przykład, jeśli wprowadzono macierz bez nazw wierszy dla x), a wiersz.names ma wartość TRUE, wówczas wiersze otrzymują nazwy zaczynające się od „1 ”I zwiększanie o jeden w każdym wierszu. Domyślnie row.names ma wartość TRUE. Argument col.names jest albo logicznym, albo wektorem znakowym nazw kolumn. W przypadku write.table(), jeśli col.names jest ustawione na TRUE, albo nazwy kolumn są pobierane z ramki danych, albo, jeśli w ramce danych nie ma żadnych nazw, tworzone są nazwy kolumn zaczynające się od „V1” i zwiększane liczba całkowita o jeden dla każdej nowej kolumny. Jeśli podano nazwy kolumn, nazwy kolumn są równe podanym nazwom. Jak wspomniano powyżej, dla metody write.table() domyślnie nie jest podawana żadna wartość dla kolumny nazw wierszy, jeśli kolumna z nazwą wiersza istnieje w eksportowanym pliku. Jeśli jednak nazwa_kolumn jest ustawiona na wartość NA, wówczas kolumny są traktowane tak samo, jak w przypadku nazwy_kolumn ustawione na wartość PRAWDA, z tą różnicą, że do kolumny z nazwą wiersza dodawany jest pusty ciąg znaków. Jeśli row.names jest równe FALSE, wtedy ustawienie col.names równej NA daje błąd. Jeśli nazwy kolumn są ustawione na FALSE, w eksportowanym pliku nie są przypisywane żadne nazwy kolumn. W przypadku write.csv () wartość domyślna dla col.names zależy od wartości row.names. Wartości domyślnej nie można zmienić. Jeśli row.names ma wartość TRUE, col.names jest ustawiana na NA. W przeciwnym razie col.names ma wartość TRUE. W obu przypadkach nazwy kolumn są podawane jako nazwy w ramce danych lub, jeśli w ramce danych nie ma nazw kolumn, nazwy zaczynające się od „V1” i z liczbą całkowitą zwiększaną o jeden dla każdej nowej kolumny. Ostatni argument to qmethod i może przyjąć wartości „escape” lub „double”. Wartość domyślna to „escape”. Argument zawiera instrukcje dotyczące podwójnych cudzysłowów. Więcej informacji można znaleźć na stronie pomocy dla metody write.table(). Oto kilka przykładów. Obiekt df.mat.x jest ramką danych z nazwami wierszy i kolumn. Mata obiektu to macierz, która nie ma nazw wierszy ani kolumn.
> df.mat.x
c1 c2 C3
r1 1 3 art
r2 2 4 birth
> write.table(df.mat.x)
“c1” “c2” “C3”
“r1” 1 3 “art”
“r2” 2 4 “birth”
> write.table(df.mat.x, sep=”,”)
“c1″,”c2″,”C3”
“r1″,1,3,”art”
“r2″,2,4,”birth”
> write.table(df.mat.x, sep=”,”, col.names=NA)
“”,”c1″,”c2″,”C3″
“r1″,1,3,”art”
“r2″,2,4,”birth”
> write.table(df.mat.x, col.names=F)
“r1” 1 3 “art”
“r2” 2 4 “birth”
> write.table(df.mat.x, row.names=F, col.names=F)
1 3 “art”
2 4 “birth”
> write.table(df.mat.x, sep=”,”, row.names=F)
“c1″,”c2″,”C3”
1,3,”art”
2,4,”birth”
> write.csv(df.mat.x)
“”,”c1″,”c2″,”C3″
“r1″,1,3,”art”
“r2″,2,4,”birth”
> write.csv(df.mat.x, row.names=F)
“c1″,”c2″,”C3”
1,3,”art”
2,4,”birth”
> mat
[,1] [,2]
[1,] 1 3
[2,] 2 4
> write.table(mat)
“V1” “V2”
“1” 1 3
“2” 2 4
> write.table(mat, row.names=c(“r1″,”r2”), col.names=NA)
“” “V1” “V2”
“r1” 1 3
“r2” 2 4
> write.table(mat, row.names=F, col.names=F)
1 3
2 4
> write.csv(mat)
“”,”V1″,”V2″
“1”,1,3
“2”,2,4
> write.csv(mat, row.names=c(“r1″,”r2”))
“”,”V1″,”V2″
“r1”,1,3
“r2”,2,4
Aby uzyskać dostęp do strony pomocy dotyczącej metody write.table (), wprowadź ?write.table w wierszu poleceń R