我是了解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
答案 0 :(得分:1)
我坚持认为:
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)
})