简体   繁体   English

在R中套用和附加资料框

[英]Apply and append data frame in R

I am trying to convert lets say dataframe ALPHA: 我试图将数据框ALPHA转换为:

     A    B    C     D      E
1 0.80 2.00 0.09 201.1 335.00

to dataframe BETA 到数据帧测试版

     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

so pretty much multiplies by 2 and appends. 因此几乎乘以2并附加。

Currently doing it as: 目前这样做是:

  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="")))

However, it passes curveCalculator ALL NAMES, so for A it would pass 0.80 for variable and c("A","B","C","D","E") for variable name. 但是,它传递了curveCalculator ALL NAMES,因此对于A,它将为变量传递0.80,为变量名传递c(“ A”,“ B”,“ C”,“ D”,“ E”)。 I want it to only pass "A" for A, "B" for B and so on.. 我希望它仅对A传递“ A”,对B传递“ B”,依此类推。

Try this 尝试这个

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

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

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