R 双环和双环;If-Else语句计算平均值并将其存储在矩阵中
这里,我提出了一个简单的问题,需要一个双For循环和一个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
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){