Istnieje wiele funkcji języka R, które wczytują dane do R. Najpopularniejsze z nich to scan() do odczytu danych z danego trybu oraz read.table() i read.csv() do odczytu danych z macierzowej tabeli strukturalnej. Niektóre z bardziej egzotycznych to read.fortran() do odczytu danych zakodowanych w formacie FORTRAN, read.fwf() do czytania tabel w formacie o stałej szerokości, read.xls() dla arkuszy kalkulacyjnych Excel (twórcy R odradzają czytanie Excel bezpośrednio, ale zapewniają pewne funkcje do tego) i read.delim() dla kolumn oddzielonych tabulatorami.
Funkcja scan()
Funkcja scan() importuje dane z pliku wiersz po wierszu, albo z wartości do argumentu tekstowego, albo bezpośrednio z konsoli. Aby zaimportować plik, wiersze nie muszą mieć tej samej długości. Funkcja odczytuje dane z trybów logicznych, numerycznych, zespolonych, znakowych, surowych i listowych. Dla wszystkich trybów z wyjątkiem listy wszystkie dane muszą być czytelny jako tryb. Funkcja scan () jest najczęściej używana do odczytu pliku zewnętrznego. Odwołanie do pliku jest pierwsze w wywołaniu i musi być zawarte w cudzysłowie. Odniesienie może odnosić się do położenia obszaru roboczego lub do położenia bezwzględnego – w tym adresów URL. Przykładem jest
> scan(“test.txt”)
Read 7 items
[1] 1 3 5 7 1 4 6
gdzie test.txt to plik zawierający siedem cyfr w dwóch wierszach. Aby wyszukać plik, wprowadź file.choose() dla cytowanego odniesienia do pliku, czyli scan (file.choose()). Funkcja może również służyć do wczytywania danych w konsoli, co odbywa się poprzez ustawienie danych równych argumentowi zwanemu tekstem, gdzie dane są w cudzysłowie. Na przykład:
> scan(text = “1 2 3 4”)
Read 4 items
[1] 1 2 3 4
Dane można również wczytać bezpośrednio z konsoli, ustawiając plik na „”. Na przykład:
> scan(“”)
1: 1
2: 4
3: 9
4: 3
5:
Read 4 items
[1] 1 4 9 3
Tutaj R wskazuje punkt danych z numerem punktu, po którym następuje dwukropek. Aby przestać wprowadzać dane, użyj control-z w systemie Windows i control-d w systemie Linux lub wprowadź pusty wiersz, naciskając klawisz Return (enter). Jeśli tryb wprowadzanych danych nie jest numeryczny, argument jaki musi być zawarty w wywołaniu scan (). Argument what jest ustawiony na mode(), gdzie tryb jest trybem danych. Na przykład:
> scan(“test.txt”, what=complex())
Read 7 items
[1] 1+0i 3+0i 5+0i 7+0i 1+0i 4+0i 6+0i
który odczytuje złożone dane z zewnętrznego pliku test.txt. Jeśli danych w pliku nie można odczytać w trybie, funkcja scan() zwraca błąd. Funkcja scan() ma również argument sep, który informuje funkcję scan() o separatorze między wartościami w pliku zewnętrznym lub w wartości tekstowej. Domyślnie separatorem jest biały znak. Argument sep może być ustawiony na dowolną jednobajtową wartość, którą R może odczytać. W wywołaniu funkcji scan() wartość sep jest umieszczana w cudzysłowie. Na przykład:
> scan(text = “1, 2, 3, 4″, sep=”,”)
Read 4 items
[1] 1 2 3 4
Tutaj przecinek jest używany jako separator między wartościami danych. Jeśli dwa oddzielające symbole w wywołaniu scan() nie mają wartości między nimi, to domyślnie wartość jest ustawiona na NA. Na przykład:
> scan(text = “1, 2, 3,, 4″, sep=”,”)
Read 5 items
[1] 1 2 3 NA 4
W przypadku danych z wierszami nagłówka argument skip nakazuje funkcji scan() pominięcie wierszy przed odczytaniem danych. Wartość skip mówi scan(), ile linii ma zostać pominiętych i może mieć dowolny tryb atomowy. Wartość jest przekształcana w liczbę całkowitą, jeśli to możliwe, lub interpretowana jako zero. Jeśli skip jest równe zero, żadne linie nie są pomijane. Aby odczytać linię nagłówka, argument nlines nakazuje funkcji scan () odczytanie wierszy do wartości nlines włącznie. Podobnie jak skip, nlines może mieć dowolny tryb atomowy, a funkcja scan() przekształca wartość na liczbę całkowitą. Jeśli nlines ma wartość zero, czytane są wszystkie wiersze. Funkcja scan() zwraca wektor. Aby utworzyć macierz lub tablicę, wywołanie scan() może być częścią wywołania matrix() lub array(). Na przykład:
> matrix(scan( text=”1 2 3 4 5 6 7 8 9 10″ ), 2, 5, byrow=T)
Read 10 items
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
Istnieje kilka innych argumentów funkcji scan (), które wykonują takie czynności, jak ograniczanie liczby odczytywanych punktów danych, wypełnianie wierszy niekompletnych danych lub przekazanie funkcji scan () stylu przecinka dziesiętnego w danych. Więcej informacji można znaleźć, wpisując ?scan po znaku zachęty R