假设输入数据帧被调用,请尝试此操作dd
:
hasPrefix <- grepl("^__", names(dd))
dd[, hasPrefix] <- lapply(dd[, hasPrefix, drop = FALSE], prefixColABC)
dd[, !hasPrefix] <- lapply(dd[, !hasPrefix, drop = FALSE], prefixColDEF)
giving:
> dd
__ID col
1 ABC_G DEF_x
2 ABC_n DEF_U
3 ABC_c DEF_G
4 ABC_O DEF_X
5 ABC_p DEF_E
6 ABC_U DEF_j
7 ABC_M DEF_G
8 ABC_0 DEF_l
9 ABC_V DEF_i
10 ABC_B DEF_u
Note:输入dd
,在修改之前,是:
dd <- structure(list(`__ID` = structure(c(4L, 6L, 3L, 7L, 8L, 9L, 5L,
1L, 10L, 2L), .Label = c("0", "B", "c", "G", "M", "n", "O", "p",
"U", "V"), class = "factor"), col = structure(c(8L, 7L, 2L, 9L,
1L, 4L, 2L, 5L, 3L, 6L), .Label = c("E", "G", "i", "j", "l",
"u", "U", "x", "X"), class = "factor")), .Names = c("__ID", "col"
), row.names = c(NA, -10L), class = "data.frame")