小编Gee*_*Cat的帖子

在R中同时比较多个向量?

我可以很容易地比较R中的2个向量,看看有多少元素是相同的.说

  a<- c(1,2,3,4)
  b<- c(1,2,3,5)
  sum(a==b) would give me what I want
Run Code Online (Sandbox Code Playgroud)

但是我如何比较3个向量?或同时超过3个向量?

  a<- c(1,2,3,4)
  b<- c(1,2,3,5)
  c<- c(2,3,4,5)
  sum(a==b & b==c) # does not seem to be correct
Run Code Online (Sandbox Code Playgroud)

我在寻找相同位置的元素是否相同.在相同的情况下,它会给我零,因为a,b,c在同一位置不是全部相同.

count = 0
for(i in 1:length(a)){
  if((a[i]==b[i]) & (a[i]==c[i]))
  count=count+1
} # this will give me that I want, but the efficiency seems very low 
Run Code Online (Sandbox Code Playgroud)

r vector logical-operators

5
推荐指数
2
解决办法
2637
查看次数

在多维数组上使用apply

正常矩阵将是二维矩阵.但是,我可以初步说明:

a<-array(0,dim=c(2,3,4,5))
Run Code Online (Sandbox Code Playgroud)

这是一个2*4*5*3矩阵或阵列.

命令

apply(a,c(2,3),sum)
Run Code Online (Sandbox Code Playgroud)

将给出一个4*5数组,包含第1和第4维中元素的总和.

为什么呢?据我所知,在apply函数中,1表示行,2表示列,但3是什么意思?

我们需要一些抽象.

arrays r matrix apply sapply

1
推荐指数
1
解决办法
5113
查看次数

标签 统计

r ×2

apply ×1

arrays ×1

logical-operators ×1

matrix ×1

sapply ×1

vector ×1