邏輯型向量的建立
與數(shù)值型向量相同,R允許對邏輯向量進(jìn)行操作. 一個(gè)邏輯向量的值可以 是TRUE, FALSE和NA. 前兩個(gè)通常簡寫為T和F2 . 邏輯向量是由條件給出的. 譬如
> x <- c(10.4, 5.6, 3.1, 6.4, 21.7)
> temp <- x > 13
> temp
[1] FALSE FALSE FALSE FALSE TRUE
temp為一個(gè)與x長度相同,元素根據(jù)是否與條件相符而由TRUE或FALSE組成的向量. 邏輯向量可以在普通的運(yùn)算中被使用,此時(shí)它們將被轉(zhuǎn)化為數(shù)字向量,F(xiàn)ALSE當(dāng)做0, 而TRUE當(dāng)做1. 再看幾個(gè)簡單的例子:
> 7!=6
[1] TRUE
> !(7==6)
[1] TRUE
> !(7==6)==1
[1] TRUE
> (7==9)|(7>0)
[1] TRUE
> (7==9)&(7>0)
[1] FALSE
因子型向量的建立
一個(gè)因子或因子向量不僅包括分類變量本身, 還包括變量不同的可能水平(即使它們在數(shù)據(jù)中不出現(xiàn)).
說明: levels 用來指定因子的水平(缺省值是向量x中不同的值);labels用來指定水平的名字;exclude表示從向量x中剔除的水平值;ordered是一個(gè)邏輯型選項(xiàng), 用來指定因子的水平是否有次序. 這里x可以是數(shù)值型或字符型, 這樣對應(yīng)的因子也就稱為數(shù)值型因子或字符型因子. 因此, 因子的建立可以通過字符型向量或數(shù)值型向量來建立, 且可以轉(zhuǎn)化.
1) 將字符型向量轉(zhuǎn)換成因子
> a <- c("green", "blue", "green", "yellow")
> a <- factor(a)
a
[1] green blue green yellow
Levels: blue green yellow
2) 將數(shù)值型向量轉(zhuǎn)換成因子
> b <- c(1,2,3,1)
> b <- factor(b)
> b
[1] 1 2 3 1
Levels: 1 2 3
3) 將字符型因子轉(zhuǎn)換為數(shù)值型因子
> a <- c("green", "blue", "green", "yellow")
> a <- factor(a)
> levels(a)<-c(1,2,3,4)
> a
[1] 2 1 2 3
Levels: 1 2 3 4
> ff <- factor(c("A", "B", "C"), labels=c(1,2,3))
> ff
[1] 1 2 3
Levels: 1 2 3
4) 將數(shù)值型因子轉(zhuǎn)換為字符型因子
> b <- c(1,2,3,1)
> b <- factor(b)
> levels(b) <- c("low", "middle", "high")
> b
[1] low middle high low
Levels: low middle high
> ff <- factor(1:3, labels=c("A", "B", "C"))
ff
[1] A B C
Levels: A B C
注: 函數(shù)levels( )用來提取一個(gè)因子中可能的水平值, 例如
> ff <- factor(c(2, 4), levels=2:5)
> ff
[1] 2 4
Levels: 2 3 4 5
> levels(ff)
[1] "2" "3" "4" "5"
5) 函數(shù)gl( )能產(chǎn)生規(guī)則的因子序列. 這個(gè)函數(shù)的用法是gl(k,n),其中k是水平數(shù), n是每個(gè)水平重復(fù)的次數(shù). 此函數(shù)有兩個(gè)選項(xiàng):length用來指定產(chǎn)生數(shù)據(jù)的個(gè)數(shù), label用來指定每個(gè)水平因子的名字. 例如:
> gl(3, 5)
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Levels: 1 2 3
> gl(3, 5, length=30)
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Levels: 1 2 3
> gl(2, 6, label=c("Male", "Female"))
[1] Male Male Male Male Male Male
[7] Female Female Female Female Female Female
Levels: Male Female
> gl(2, 10)
[1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
Levels: 1 2
> gl(2, 1, length=20)
[1] 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
Levels: 1 2
> gl(2, 2, length=20)
[1] 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2
Levels: 1 2
下次請期待數(shù)值型向量的運(yùn)算








暫無數(shù)據(jù)