for循环中的简单if语句

时间:2018-11-12 14:07:06

标签: r if-statement

我从不使用if语句,而必须产生一个简单的语句。

value=c(250,200,180)

vector1<-c(1:10)
vector2<-c(11:20)
vector3<-c(21:30)

matrixmy<-cbind(vector1,vector2,vector3)   

我的if语句将在函数(myfunction)中。这个想法是:

  • function(250)时,我将使用矩阵matrixmy[,1]的第一列作为其余功能。
  • function(220)时,我将使用矩阵matrixmy[,2]的第二列作为其余功能。
  • function(200)时,我将使用矩阵matrixmy[,3]的第一列作为其余功能

该功能已经实现,但我无法复制示例。

我一直在考虑if else语句的想法是:

if value[i]=250 then j=1
       sample=matrixmy[,1] 

          else 

if value[i]=220 then
       sample=matrixmy[,2] 

          else
then value[i]=200 then j=3

       sample=matrixmy[,3] 

清楚吗?

有帮助吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以简化很多事情,只需使用:

index <- c(`250` = 1, `220` = 2, `200` = 3)[as.character(value[i])]
sample = matrixmy[, index]

如果您要坚持自己的代码,请使用类似这样的内容。

if (value[i]==250) j=1
if (value[i]==220) j=2
if (value[i]==200) j=3

sample=matrixmy[,j] 
相关问题