如何从for循环中保存变量

时间:2019-10-02 08:02:35

标签: r for-loop if-statement

我想对变量进行分类并保存输出,但是“ test”为空。 我该如何解决该问题?

x<-sample(10)
npz<-function(x)
{
  for(x in x)
if (x < 0) {
  print("Negative number")
} else if (x > 0) {
  print("Positive number")
} else
  print("Zero")
}
test<-npz(x)
test

2 个答案:

答案 0 :(得分:0)

您不需要此功能,只需将所有已向量化的ifelse内联:

x <- sample(10)
test <- ifelse(x < 0, "Negative number",
            ifelse(x > 0, "Positive number", "Zero"))

答案 1 :(得分:0)

sign将分别为负数,零和正数返回-101。我们可以使用它相应地索引字符向量。

npz <- function(x) {
   c("Negative number", "Zero", "Positive Number")[sign(x) + 2]
}

test <- npz(c(-1, 2, 3, 0))
test
#[1] "Negative number" "Positive Number" "Positive Number" "Zero"