我正在创建的循环遇到问题。我的意图是循环将查看值落在哪里并给该值另一个名称。这是我正在尝试做的一个例子:
a<-rnorm(10,0,1)
b<-rnorm(10,0,1)
testing<-data.frame(a,b)
testing2<-testing
for (i in 1:nrow(testing2)){
for (j in 1:ncol(testing2)){
if (testing2[i,j]>1) testing2[i,j]<-"More"
else if (testing2[i,j]<(-1)) testing2[i,j]<-"Less"
else testing2[i,j]<-"Same"
}
}
当我查看testing2并将其与测试进行比较时,它与应该做的事情不符。 “更多”似乎有效,但它混淆了“更少”和“相同”。
不需要(嵌套)循环,使用向量ifelse https://stat.ethz.ch/R-manual/R-devel/library/base/html/ifelse.html反而:
testing = ifelse(testing > 1, 'More', ifelse(testing < -1, 'Less', 'Same'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)