gpt4 book ai didi

r - 如何使用条件如果在R中更改矩阵条目

转载 作者:行者123 更新时间:2023-12-04 11:17:19 24 4
gpt4 key购买 nike

我有这个示例矩阵,我想用 "YES" 更改矩阵的条目或 "NO"基于条件 if陈述。

a<-c(5,1,0,3,2,0.6,1.6,7,9,0)
b<-c(11,0,1,18,11,11,0,13,20,10)
c<-c(10,20,0.7,0.8,0.3,0.4,0,0.9,1,1)

MAT<-cbind(a,b,c)
MAT

for (i in 1:nrow(MAT)){
for (j in 1:ncol(MAT)){
if (MAT[i,j]>5){
MAT[i,j]="YES"
} else {
MAT[i,j]="NO"
}
}
}
print(MAT)
我得到的输出是这样的,它是错误的。请帮助告诉我出了什么问题以及如何解决?
      a     b    c   
[1,] "NO" "NO" "NO"
[2,] "NO" "NO" "NO"
[3,] "NO" "NO" "NO"
[4,] "NO" "NO" "NO"
[5,] "NO" "NO" "NO"
[6,] "NO" "NO" "NO"
[7,] "NO" "NO" "NO"
[8,] "YES" "NO" "NO"
[9,] "YES" "NO" "NO"
[10,] "NO" "NO" "NO"

最佳答案

这里不需要循环。只需在您调用 x>5 时使用整个矩阵即可

ifelse(MAT>5, "YES", "NO")
这将对整个矩阵进行逻辑运算。然而,输出将是一个向量,它基本上是结果逻辑矩阵,但从其 dim 中剥离属性。
您可以重新分配 VALUES来自 ifelse() 的输出同时保留 STRUCTUREMAT通过使用空括号 [] ,如:
MAT[]<-ifelse(MAT>5, "YES", "NO")

关于r - 如何使用条件如果在R中更改矩阵条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68791007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com