[英]How to loop through columns in R and apply different functions based on column names
我想遍歷數據框中的每一列,如果列名是abc
,則根據列名在每一列上應用函數,然后我希望my.summary()
function 在該列中生效,其余列應該使用另一個 function
x <- sapply(Data, as.numeric )
x[is.na(x)] <- 0
my.summary <- function(a){
c(
Worst_Decile = quantile(a,0.10),
Worst_Quartile = quantile(a,0.25),
median = median(a),
Best_Quartile = quantile(a,0.75),
Best_Decile = quantile(a,0.90)
)
}
LowIsBetter <- function(a){
c(
Worst_Decile = quantile(a,0.90),
Worst_Quartile = quantile(a,0.75),
median = median(a),
Best_Quartile = quantile(a,0.25),
Best_Decile = quantile(a,0.10)
)
}
for (i in colnames(x)){
if(i == "ABC"){
xy <- apply(x,2,my.summary)
}else{xy <- apply(x,2,LowIsBetter)}
}
數據框:
預期結果:
嘗試這個:
result <- sapply(colnames(x), function(col) {
if(col == 'abc') my.summary(x[, col])
else LowIsBetter(x[, col])
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.