用户定义的功能在R中没有响应

时间:2018-06-18 04:09:43

标签: r rstudio

我在R中尝试了一些代码,但是使用定义的函数无法响应。

factor_func_gender<-function(x){
  x$Gender=factor(x$Gender,labels = c(0,1))
}


mixed_data=my_data$depressiondummy[2:30]
factor_func_gender(mixed_data)

我运行此代码。但它没有显示任何错误。我该怎么办?

1 个答案:

答案 0 :(得分:2)

当@RuiBarradas打败我时,我只是在打字回答。

对于它的价值和重申,你的代码的两个问题是

  1. factor_func_gender不会返回修改后的data.frame
  2. 调用factor_func_gender时,您没有将函数的输出对象(即修改后的data.frame)存储在新变量中。
  3. 以下是解决这些问题的方法:

    # Let's generate some sample data
    set.seed(2017);
    df <- data.frame(
        Gender = rep(c("Male", "Female"), each = 5),
        Value = runif(10));
    
    # Define the function that returns a data.frame
    factor_func_gender <- function(x) {
          x$Gender <- factor(x$Gender, labels = c(0, 1));
          return(x);    # Return the dataframe
    }
    
    # Apply the function to a data.frame and store output in new data.frame
    df.new <- factor_func_gender(df);
    str(df.new);
    #'data.frame':  10 obs. of  2 variables:
    # $ Gender: Factor w/ 2 levels "0","1": 2 2 2 2 2 1 1 1 1 1
    # $ Value : num  0.924 0.537 0.469 0.289 0.77 ...