(IV) Ręczne wprowadzanie danych i generowanie danych za pomocą wzorców

Dane można wprowadzić ręcznie za pomocą funkcji c (), gdzie c oznacza zbieranie. Czasami potrzebne są dane z określonym wzorcem, na przykład przy ustawianiu indeksów do manipulacji macierzą lub tablicami lub jako dane wejściowe do funkcji. W języku R jest wiele funkcji, które dają wzorowe wyniki, które mogą być przydatne. Czasami dla wymiarów w wektorze, macierzy lub tablicy potrzebne są nazwy indeksowane. Funkcja paste () może służyć do tworzenia nazw indeksowanych.

Funkcja c()

Funkcja c() zbiera obiekty razem w jeden obiekt. Zebrane obiekty są oddzielane przecinkami w wywołaniu c(). Obiekty mogą być NULL, surowe, logiczne, całkowite, podwójne, ciągi znaków (które muszą być cytowane), nazwane obiekty (które muszą być atomowymi obiektami, listami lub wyrażeniami), listy i / lub wyrażenia. Obiekty mogą być również wywołaniami funkcyjnymi, które zwracają dowolną z powyższych klas. Jeśli wszystkie obiekty w wywołaniu są obiektami atomowymi, funkcja c() zbiera obiekty do wektora elementów tworzących obiekty. Klasa wektora wynikowego jest klasą najwyższego poziomu w obrębie elementów wektora, w której poziomy klas rosną w kolejności NULL, surowe, logiczne, całkowite, podwójne, zespolone i znakowe.

Oto przykład hierarchii:

> rw = as.raw(c(36, 37, 38, 39))

> rw

[1] 24 25 26 27

> c(rw, rw)

[1] 24 25 26 27 24 25 26 27

> c(rw, TRUE)

[1] TRUE TRUE TRUE TRUE TRUE

> c(rw, 40)

[1] 36 37 38 39 40

> c(rw, 40.5)

[1] 36.0 37.0 38.0 39.0 40.5

> c(rw, 1+1i)

[1] 36+0i 37+0i 38+0i 39+0i 1+1i

> c(rw, “six”)

[1] “24” “25” “26” “27” “six”

Konwersja z surowego jest automatyczna z wyjątkiem konwersji na znak, która zachowuje surowe wartości. Funkcja c() ma jeden możliwy nazwany argument, argument logiczny rekurencyjny. Wartość domyślna rekursywnego to FALSE. Jeśli recursive ma wartość TRUE, a kolekcja zawiera listę, ale nie zawiera wyrażenia, lista jest rozdzielana na najniższy poziom poszczególnych elementów na liście i zwracany jest wektor elementów atomowych. Obiekt przyjmuje klasę na najwyższym poziomie w obiekcie. Jeśli rekurencja ma wartość FALSE, wynikowy obiekt staje się listą. W hierarchii klas lista znajduje się nad klasami atomowymi, ale poniżej wyrażenia. Jeśli w wywołaniu c() zawarte jest wyrażenie, wynik ma wyrażenie klasy. Oto przykład obiektów listy klas i wyrażenia:

> a.list

[[1]]

cl1 cl2

[1,] 1 3

[2,] 2 4

[[2]]

[1] “abc” “cde”

> c(a.list, 1:2)

[[1]]

cl1 cl2

[1,] 1 3

[2,] 2 4

[[2]]

[1] “abc” “cde”

[[3]]

[1] 1

[[4]]

[1] 2

> c(a.list, 1:2, recursive=T)

[1] “1” “2” “3” “4” “abc” “cde” “1” “2”

> a.expr = expression(y ~ x, `1`)

> c(a.list, a.expr)

expression(1:4, c(“abc”, “cde”), y ~ x, `1`)

W pierwszym wywołaniu c() zwracany jest obiekt listy klas. W drugim wywołaniu zwracany jest obiekt o charakterze klasowym. W trzecim wywołaniu zwracany jest obiekt wyrażenia klasy. Nazwy można przypisać do elementów obiektu utworzonego przez c(), ustawiając elementy równe nazwie na liście – na przykład:

> c (a = 1, b = 2,3)

a b

1 2 3

Tutaj pierwsze dwa elementy mają przypisane nazwy a i b, podczas gdy trzeci element nie ma nazwy. Więcej informacji o c () można znaleźć, wprowadzając ?c w wierszu polecenia R.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *