簡體   English   中英

如何遍歷 R 中的列並根據列名應用不同的功能

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM