簡體   English   中英

r-具有多個列的ifelse(應用)

[英]r - ifelse with multiple columns (apply)

我對理解apply世界是陌生的,而當我開始理解概念時,會對應用程序有麻煩。

我有多個帶有“ Y”的列,我想將其更改為列名的最后一個字母。

我想使用以下內容獲取將函數應用到的列的列表:

flaggs2015 <- grep("Flag", names(ItemStats_2015))

這是我想對1列進行處理的示例:

ItemStats_2015$Item_Flag_A <- ifelse(ItemStats_2015$Item_Flag_A == "Y", str_sub(flaggs2015[1], -1, -1), NA)

當然,除了我顯然想同時對名稱中帶有'Flag'任何列進行操作。

這是示例數據:

Item_ID Item_Flag_A     dummy column    Item_Flag_B     Item_Flag_C
54434   Y               red                         
85068                   green                           
85070   Y               purple                          Y       
85072                   orange                          
85074   Y               red                         
85078   Y               green                           
85080   Y               purple          Y           
85086                   orange                          
85088                   red                         

我堅持這一點:

df <- data.frame(Item_ID = 1:3, Item_Flag_A = c("", "Y", ""), Dummy = 1:3, Item_Flag_B = c("Y", "", ""))
idx <- grep("Flag", names(df), value = T)

sapply(idx,  function(x) {
  df[, x] <<- ifelse(df[, x] == "Y", str_sub(x, -1, -1), NA)
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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