卫明真

2020-08-22   阅读量: 957

R语言向量的建立 中

扫码加入数据分析学习群

逻辑型向量的建立

与数值型向量相同,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

下次请期待数值型向量的运算




添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
37.6978 7 0 关注作者 收藏

评论(0)


暂无数据

推荐课程