但是,既然使用了R语言,就应当尽量用向量的方式来解决问题。
向量化是R语言的一大特色,能够大大加快R语言的执行效率。
先从最简单的开始假设你的数据是一个向量a,然后你作一个判断a==1,会得到一个向量全部是True和False
然后你把这个新的逻辑变量转换成数字变量就OK了。具体这么操作:
>a<-read.table() #读入数据
>a
[1] 1 2 3 2 1 0 8 6
>b<-a==1 #作判断a==1,然后把逻辑结果赋给b
>as.numeric(b) #强制转换成数字变量
[1] 1 0 0 0 1 0 0 0
首先找出对应的行数:ind <- A>30 &B>90此时ind也是个列,内容都是true和false,维数和A,B一样,是true的就是满足上面关系的行
此时求平均就好了: mean(C[ind])