【问题标题】:Apply and append data frame in R在 R 中应用和附加数据框
【发布时间】:2017-05-09 16:49:43
【问题描述】:

我正在尝试转换让我们说数据帧 ALPHA:

     A    B    C     D      E
1 0.80 2.00 0.09 201.1 335.00

到数据框测试版

     A    B    C     D      E   A1   B1   C1    D1     E1  
1 0.80 2.00 0.09 201.1 335.00 1.60 3.00 0.18 402.2 670.00

几乎乘以 2 并追加。

目前的做法是:

  curveCalculator <- function(variable, variableName){
       // Need variableName here for another part
       return(variable*2)
  }


  BETA <- lapply(ALPHA, function(variableName, variable){
    calculated <- curveCalculator(variable, variableName)
    return(calculated)
  }, names(optional))

  bind_cols(ALPHA, as.data.frame(BETA,col.names=paste(names(BETA), 1, sep="")))

但是,它传递了curveCalculator ALL NAMES,因此对于A,它会传递0.80 作为变量名,而c("A","B","C","D","E") 作为变量名。我希望它只为 A 传递“A”,为 B 传递“B”等等..

【问题讨论】:

    标签: r matrix dataframe dplyr bind


    【解决方案1】:

    试试这个

    library(purrr)
    BETA <- map2(ALPHA, names(ALPHA), curveCalculator) %>% 
        as.data.frame()
    names(BETA) <- paste0(names(BETA), 1)
    cbind(ALPHA, BETA)
    

    【讨论】:

    • 我需要一种方法将当前列的名称传递给 funs 函数
    猜你喜欢
    • 2015-07-09
    • 2017-04-14
    • 2011-09-24
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    相关资源
    最近更新 更多