Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 双环和双环;If-Else语句计算平均值并将其存储在矩阵中_R_If Statement_For Loop_Matrix_Mean - Fatal编程技术网

R 双环和双环;If-Else语句计算平均值并将其存储在矩阵中

R 双环和双环;If-Else语句计算平均值并将其存储在矩阵中,r,if-statement,for-loop,matrix,mean,R,If Statement,For Loop,Matrix,Mean,这里,我提出了一个简单的问题,需要一个双For循环和一个If-Else语句。我的第一个问题是帮助进行小故障排除,第二个问题是出于好奇心,因为我对更短、更优雅的解决方案感兴趣。关于第一个问题,这里有一个例子: A<-c(1,2,3,4,5) B<-c(2,3,4,5,6) Q1<-data.frame(cbind(A,B)) mean<-matrix(nrow=5, ncol = 5) for(i in 1: length(Q1$A)){ for(j in 1: len

这里,我提出了一个简单的问题,需要一个双For循环和一个If-Else语句。我的第一个问题是帮助进行小故障排除,第二个问题是出于好奇心,因为我对更短、更优雅的解决方案感兴趣。关于第一个问题,这里有一个例子:

A<-c(1,2,3,4,5)
B<-c(2,3,4,5,6)
Q1<-data.frame(cbind(A,B))
mean<-matrix(nrow=5, ncol = 5)
for(i in 1: length(Q1$A)){
  for(j in 1: length(Q1$B)){
    if(Q1$A[i]==Q1$B[j]){
      mean[i,j]<-NA
    }else{
      mean[i,j]<-sum(Q1$A[i]+Q1$B[j])/2
    }
  }
}
然而,以下是我的结果:

     [,1] [,2] [,3] [,4] [,5]
[1,]  1.5  2.0  2.5  3.0  3.5
[2,]   NA  2.5  3.0  3.5  4.0
[3,]  2.5   NA  3.5  4.0  4.5
[4,]  3.0  3.5   NA  4.5  5.0
[5,]  3.5  4.0  4.5   NA  5.5

非常感谢任何简单的解决方案。我可以想象在我的ifelse语句中用
mean[I,j]稍微调整一下,我想这就是你需要的:

A<-c(1,2,3,4,5)
B<-c(2,3,4,5,6)
Q1<-data.frame(cbind(A,B))

res <- outer(A, B, "+")/2
diag(res) <- NA
res

这是关于矩阵为什么不工作的第一个问题的答案

下面的代码行

if(Q1$A[i]==Q1$B[j]){
检查值是否匹配如果索引匹配,则需要执行以下操作

if(i==j){

可笑的是,我不能接受你的绿色支票回答,因为你回答问题太快了,而且还有时间限制。:)似乎你一直在不断地问同一个问题,而且在你之前的问题上已经给出了几乎相同的答案……@DavidArenburg我很抱歉问了一些主题重叠的问题。我只是对一个特定问题集的几种解决方案感兴趣。将来我会把它们浓缩成一篇文章!
if(Q1$A[i]==Q1$B[j]){
if(i==j){