[英]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.