逻辑型向量的建立
与数值型向量相同,R允许对逻辑向量进行操作. 一个逻辑向量的值可以 是TRUE, FALSE和NA. 前两个通常简写为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为一个与x长度相同,元素根据是否与条件相符而由TRUE或FALSE组成的向量. 逻辑向量可以在普通的运算中被使用,此时它们将被转化为数字向量,FALSE当做0, 而TRUE当做1. 再看几个简单的例子:
> 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
因子型向量的建立
一个因子或因子向量不仅包括分类变量本身, 还包括变量不同的可能水平(即使它们在数据中不出现).
说明: levels 用来指定因子的水平(缺省值是向量x中不同的值);labels用来指定水平的名字;exclude表示从向量x中剔除的水平值;ordered是一个逻辑型选项, 用来指定因子的水平是否有次序. 这里x可以是数值型或字符型, 这样对应的因子也就称为数值型因子或字符型因子. 因此, 因子的建立可以通过字符型向量或数值型向量来建立, 且可以转化.
1) 将字符型向量转换成因子
> a <- c("green", "blue", "green", "yellow")
> a <- factor(a)
a
[1] green blue green yellow
Levels: blue green yellow
2) 将数值型向量转换成因子
> b <- c(1,2,3,1)
> b <- factor(b)
> b
[1] 1 2 3 1
Levels: 1 2 3
3) 将字符型因子转换为数值型因子
> 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) 将数值型因子转换为字符型因子
> 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
注: 函数levels( )用来提取一个因子中可能的水平值, 例如
> 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) 函数gl( )能产生规则的因子序列. 这个函数的用法是gl(k,n),其中k是水平数, n是每个水平重复的次数. 此函数有两个选项:length用来指定产生数据的个数, label用来指定每个水平因子的名字. 例如:
> 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
下次请期待数值型向量的运算
暂无数据