在R中创建一个称为clean_data的函数

时间:2020-09-10 18:27:28

标签: r function loops boolean data-analysis

我是R世界中的新手,必须创建一个向量。 data <- rnorm(10, 0, 1) 下一个问题要求循环,所以我这样做:

    for(i in 1:length(data)){
        if(data[i] > 0)
            print("postive")
        else
            print("negative")

但是现在它要求:

”编写一个称为“纯数据”的函数,该函数接收一个数字向量,并返回相同长度的向量“ ret”,如果输入向量ith元素为正,则ret [i] = 1,而ret [ i] = 0否则,要开始使用,请为您的函数创建一个单独的R块并使用以下外壳程序:

    clean data <- function(input){ # your code here [...]
# ...
# your code here [...] return(ret) }

教授还建议从前重新使用循环。

1 个答案:

答案 0 :(得分:0)

我相信这就是您要寻找的。请注意如何在函数中使用ifelse而不是if和else函数。如您所见,该函数将数字字符串作为输入,但我添加了一个实例,该实例在您创建的先前数据上运行。但是,我想补充一点,这些练习的目的实际上是让我们挠头并尝试自己解决问题,因此,我建议您坚持下次尝试:)

data <- rnorm(10, 0, 1)

for(i in 1:length(data)){
  if(data[i] > 0) print("positive") else print("negative") 
}

clean_data <- function(input){
  
  ret <- NULL
  for(i in 1:length(input)){
    ifelse(input[i] > 0, ret[i] <- 1 , ret[i] <- 0) # note ifelse structure
  }
  
  return(ret)
}

clean_data(data)