r - 使用 if 语句对数字进行分类的循环

标签 r loops if-statement

<分区>

我在创建循环时遇到问题。我的意图是循环将查看值落在何处并为该值赋予另一个名称。这是我正在尝试做的一个例子:

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相反:

testing = ifelse(testing > 1, 'More', ifelse(testing < -1, 'Less', 'Same'))

关于r - 使用 if 语句对数字进行分类的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22177077/

相关文章:

r - 如何在 R 中隔离小数点后的数字?

重命名包含特定字符串的所有变量并添加序列号

c++ - Armadillo 中 SpMat<Type> 的迭代器是否只访问非零条目?

c++ - 数据管理错误 C++

c++ - 我用 C++ 编写了一个 findClosestPrime(),但 Xcode 提示 "Control may reach end of non-void function"

r - Shiny R 中的水平滚动问题

r - 有效地用累积频率替换数据帧

java - 找出循环错误

android - 如何显示巨大的类别和子类别列表?

python - 条件语句在我的 Python 代码中不起作用