仅考虑R

时间:2019-02-12 15:11:25

标签: r function matrix

我有一个看起来像这样的矩阵

1 2 8 
2 2 9
3 1 10
4 5 10
5 2 12

现在,我想在行的第三列上应用某些函数,这些函数的第二列具有特定值。因此,例如,我只想考虑第二列中有2的行。然后,我想得到均值,中位数和方差8,9,12。

实际上,我的矩阵更大,但这是基本思想。我想我需要一个函数,该函数首先检查第二列中的值,然后仅考虑与给定值对应的第三列中的值。我做了这样的事情,但是它只是出于平均目的,实际上是一种浪费,因为该功能已经内置在R中。

这是这样的:

average<- function(m){
  k=0
   for (i in 1:nrow(x)){
     if(x[i,2]==m){
       k = k + x[i,3]
     } else {NULL}
     amount <- sum(x[,2]==m)
  }
   av <- k/amount
  return(av)}

2 个答案:

答案 0 :(得分:1)

which(mat[, 2] == 2)

由内而外地工作,首先确定与第二列中的第二列= 2 mat[, 3][...]相对应的索引。然后,使用mean()将这些索引的第3列子集化,最后取其List<String> cookies = response.getHeaders().get(HttpHeaders.SET_COOKIE); HttpHeaders requestHeaders = new HttpHeaders(); for (String cookie : cookies) { requestHeaders.add("Cookie", cookie); }

答案 1 :(得分:0)

类似mean(subset(df,column2name==2)[,3])的东西吗?
还是mean(df$column3name[df$column2name==2])

对于纯矩阵mean(df[df[,2]==2,3])