这一次,我们学习从向量组中抽出特定的向量,例如我们只对向量前20个元素感兴趣,或者对向量中NA值感兴趣。
你告诉R想要挑选哪些特殊的向量是通过在向量名的方括号里放置索引向量所知道的。例如:
索引向量有四种不同的类型,逻辑向量,正整数向量,负整数向量,字符串向量。
首先我们先来讲逻辑向量:原先我们学过的is.na()是在NA的地方输出TRUE,在有值的地方输出FALSE,相当于它的目的是找到NA值的位置。因此如果我们想输出所有位置的NA值,我们可以相反,如果我们想得到非NA值,则我们可以
如果我们要挑选比某个值大或者小的数,需要注意先把NA排除,因为它是个占位符,而不是具体的数字,因此无法进行大小比较,永远会在结果中出现。
许多编程语言索引都是从0开始的,但是在R语言中,索引是从1开始的,这个是我们需要注意的!
如果我们想抽出x的3号,5号,7号元素,应该怎么做呢?
注意这样的表达才是正确的做法。
给一串数列,如果你在取值时超过或者索引值取0,得到的都是毫无意义的值,但是R语言并没有阻止你去这样做,因此,程序员在写程序的时候就需要注意在界限内进行合理的取值。
如果我们感兴趣的数字是除了某些数以外的,例如x向量长度为40,我们对第2,第10个元素不感兴趣,对其他元素感兴趣,那要怎么提取出来呢?幸运的是,R语言接受负整数索引,如果x[c(2,10)]提供给我们的是第2,第10个元素的话,那么x[c(-2,-10)]则提供给我们除这个以外的其他元素。同样,我们也可以把负号提取出来放在c的前面,得到的是一样的效果。
最后一种索引类型是带名字的元素。例如
如果我们想得到元素的名字,我们可以使用names()函数,将会得到同样,我们也可以利用该函数给元素命名。同时使用identical()函数来判断两个向量是否完全一致。
如果我们想挑选其中的一个名字,我们可以使用