我正在尝试在if语句中使用多个操作。例如:
x <- 1
if (x == 1) {
paste("First")
1*1 #multiple actions
} else if (x == 2) {
paste("Second")
2*2 } else {("Nothing")
}
[1] 1 #what I'm getting
[2] "First"
1 #what I want to get
在这种情况下,只有表达式的第二部分被打印到控制台。 任何想法如何在 if 和 else if 之间运行所有操作?
答案 0 :(得分:3)
所有语句都按预期运行。如果满足所有这些条件,则语句的值仅打印到控制台:
invisible
有时打印的原因是为了帮助人们在命令行中以交互方式浏览数据。只需输入print(x)
,他们就可以节省一些按键,而不是x
类型。总之,如果您想确定它已打印,请使用print
:
x <- 1
if (x == 1) {
print("First")
print(1*1)
} else if (x == 2) {
print("Second")
print(2*2)
} else {
invisible("Nothing")
}
# [1] "First"
# [1] 1
答案 1 :(得分:2)
您可以使用print
或cat
:
getResult <- function(x = 1) {
if (x == 1) {
cat("First", 1 * 1, "\n")
} else if (x == 2) {
print("Second")
print(2 * 2)
} else {
cat("Nothing\n")
}
}
getResult()
# First 1
getResult(2)
# [1] "Second"
# [1] 4