繁体   English   中英

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

[英]Creating a function called clean_data in R

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

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

但现在它要求:

“编写一个名为“clean data”的函数,它接收一个数字向量并返回一个长度相同的名为“ret”的向量,如果输入向量第 i 个元素为正,则 ret[i] = 1,并且 ret[i] = 0 否则。要开始,请为您的函数创建一个单独的 R 块并使用以下 shell:

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

教授还建议重用之前的循环。

我相信这就是你正在寻找的。 请注意如何在函数中使用 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM