R 一个'if'语句可以有多个'then'语句吗?
如果R 一个'if'语句可以有多个'then'语句吗?,r,R,如果语句有多个那么语句,那么语句是否可以 # this works a <- c(1,2,3,4,5,6,7,8,9,10) b <- c(4,3,5,2,8,9,1,2,2,4) c <- c(9,9,9,5,5,5,2,2,2,1) for(i in 1:10) { if(c[i]==2) a[i]= 100; if(c[i]==2) b[i]= -99 } # this does not work d <- c(1,2,3,4,5,6,7,8,9,10)
语句有多个那么语句,那么语句是否可以
# this works
a <- c(1,2,3,4,5,6,7,8,9,10)
b <- c(4,3,5,2,8,9,1,2,2,4)
c <- c(9,9,9,5,5,5,2,2,2,1)
for(i in 1:10) { if(c[i]==2) a[i]= 100; if(c[i]==2) b[i]= -99 }
# this does not work
d <- c(1,2,3,4,5,6,7,8,9,10)
e <- c(4,3,5,2,8,9,1,2,2,4)
f <- c(9,9,9,5,5,5,2,2,2,1)
for(i in 1:10) { if(f[i]==2) (d[i]= 100 & e[i]= -99) }
#这很有效
a您需要将每条语句放在单独的行中(由;
分隔),并将整个执行块括在大括号内
for(i in 1:10) { if(f[i]==2) {d[i]= 100; e[i]= -99} }
您需要将每条语句放在单独的一行中(由;
分隔),并将整个执行块括在大括号内
for(i in 1:10) { if(f[i]==2) {d[i]= 100; e[i]= -99} }
您可能将if
-表达式(也称)与if
-语句混淆了。在后者中,通常会有一个用大括号括起来的语句块,这些语句块由分号或换行符分隔:
R> for(i in 1:10) if(f[i]==2) { d[i]= 100; e[i]= -99 }
R> d
[1] 1 2 3 4 5 6 100 100 100 10
R> e
[1] 4 3 5 2 8 9 -99 -99 -99 4
此外,这里还有一个更快的等价物:
a[which(c==2)] = 100
b[which(c==2)] = -99
您可能将if
-表达式(也称)与if
-语句混淆了。在后者中,通常会有一个用大括号括起来的语句块,这些语句块由分号或换行符分隔:
R> for(i in 1:10) if(f[i]==2) { d[i]= 100; e[i]= -99 }
R> d
[1] 1 2 3 4 5 6 100 100 100 10
R> e
[1] 4 3 5 2 8 9 -99 -99 -99 4
此外,这里还有一个更快的等价物:
a[which(c==2)] = 100
b[which(c==2)] = -99
是的,你可以像其他人提到的那样。如果您将内容放在新行上并使用缩进约定,也会更清楚。例如,我可能会像这样编写您的代码
a <- 1:10
b <- c(4, 3, 5, 2, 8, 9, 1, 2, 2, 4)
c <- c(9, 9, 9, 5, 5, 5, 2, 2, 2, 1)
for(i in 1:10){
if(c[i] == 2){
a[i] <- 100
b[i] <- -99
}
}
a是的,你可以像其他人提到的那样。如果您将内容放在新行上并使用缩进约定,也会更清楚。例如,我可能会像这样编写您的代码
a <- 1:10
b <- c(4, 3, 5, 2, 8, 9, 1, 2, 2, 4)
c <- c(9, 9, 9, 5, 5, 5, 2, 2, 2, 1)
for(i in 1:10){
if(c[i] == 2){
a[i] <- 100
b[i] <- -99
}
}
我不知道你想问什么。尝试只发布您需要帮助的代码;前三行在两个代码框中都是相同的。我不知道你想问什么。尝试只发布您需要帮助的代码;前三行在两个代码框中是相同的。我现在没有更具体的问题。多个“then”语句加上一个“if”的问题是我一直在想的。我也会记住“which”方法。谢谢你们两位出色的回答。@MarkMiller呃。。。我可以问你一个私人问题吗?你能告诉我你的编程语言背景吗?R是你的第一种编程语言吗?这对于我深入理解您的问题以及适当改进R文档非常重要。我对Fortran、BASIC、R、C、OpenBUGS和SAS有一定的经验。目前,我主要使用R和一些OpenBug,我正在学习更多关于C的知识。我开发和发布模型。然而,我不是任何语言的专家。这就是为什么我如此喜欢这个网站。我希望这有帮助。我现在没有更具体的问题。多个“then”语句加上一个“if”的问题是我一直在想的。我也会记住“which”方法。谢谢你们两位出色的回答。@MarkMiller呃。。。我可以问你一个私人问题吗?你能告诉我你的编程语言背景吗?R是你的第一种编程语言吗?这对于我深入理解您的问题以及适当改进R文档非常重要。我对Fortran、BASIC、R、C、OpenBUGS和SAS有一定的经验。目前,我主要使用R和一些OpenBug,我正在学习更多关于C的知识。我开发和发布模型。然而,我不是任何语言的专家。这就是为什么我如此喜欢这个网站。我希望这有帮助。