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