Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.2.WEKTORYATOMOWE23
c(FALSE,1L)
##[1]01
typeof(c(FALSE,1L,2.5))
##[1]"double"
typeof(c(FALSE,1L))
##[1]"integer"
#wektorliczbcałkowitych
Gdyłączymyzesobąwektoryróżnychrodzajów,Ruzgodniichtyptak,żebyinformacj
onajbardziejnogólnym”zobiektówdałosiprzechowabezznaczącej2straty.Taki
mechanizmnazywamyuzgadnianiemtypówbądźkoercją(ang.coercion).
Zpowyższegoprzykładuiinnychpodobnycheksperymentówmożemywywniosko-
wa,żehierarchiatypówwektorówatomowychwRwyglądanastpująco(wkolejności
odnajbardziejdonajmniejszczegółowego):
1)wektorwartościlogicznych(typlogical);
2)wektorwartościcałkowitych(typinteger);
3)wektorwartościrzeczywistych(typdouble);
4)wektorwartościzespolonych(typcomplex);
5)wektornapisów(typcharacter).
Rzutowanietypów.Wszystkiewektorymożnatakżewsposóbjawnyrzutowaćna
wektoryinnychtypówprzyużyciufunkcji
as.character()
,
as.complex()
,
as.double()
(równoważnie:as.numeric()),as.integer(),as.raw()orazas.logical()).Wta-
kichprzypadkachzezwalamyświadomienaewentualnąutratinformacji,któramoże
nastąpiprzyrzutowaniuztypuogólniejszegodobardziejszczegółowego.
WAŻNE
WartościlogiczneTRUEiFALSEprzedstawianeliczbowozawszejako,odpowiednio,
1i0.Leczwartośliczbowanierównazeruzawszepozrzutowaniudologicznejdaje
wynikrównyTRUE.
Kilkaprzykładów:
as.numeric(c(TRUE,FALSE))
##[1]10
as.complex(c(TRUE,FALSE))
##[1]1+0i0+0i
as.character(c(TRUE,FALSE))
##[1]"TRUE"
"FALSE"
as.logical(-2:2)
##[1]
TRUE
TRUEFALSE
TRUE
TRUE
#też1i0
#aterazdonapisów
2Konwersjaliczbrzeczywistychnanapisymożeczasemspowodowaichzaokrąglenie.