这是使用它的一种方法lapply
:
#subsetting the df to just replace the elements we need df[df$IDX==FALSE, -1] <- lapply(df[df$IDX==FALSE, -1], function(x) { #chartr is translates specific characters to different ones #here it converts 0s -> 1s and vice versa chartr("01", "10", x) })
输出:
> df IDX D1 D2 D3 D4 D5 D6 D7 1 FALSE 1/1 0/0 1/1 1/0 0/0 1/1 1/1 2 FALSE 0/0 1/1 1/1 1/1 1/1 0/0 1/1 3 TRUE 0/0 0/0 0/0 0/0 0/0 0/0 0/0 4 TRUE 0/1 0/1 0/0 1/1 0/1 0/0 0/1 5 FALSE 0/0 1/0 0/0 1/1 1/0 1/1 1/1