Существует несколько подходов, которые вы можете использовать:
base
daf[, 2:5] <- lapply(daf[, 2:5], fu)
dplyr
#library(dplyr)
mutate_at(daf, vars(data_2017:general), fu)
data.table
#library(data.table)
dat <- data.table(daf)
dat[,
(colnames(dat)[-1]) := lapply(.SD, fu),
.SDcols = -1
]
данные
daf <- structure(
list(data_2018 = c(3.2, 3, 3.2),
data_2017 = c(2.825, 0, -0.425),
pilot = c(0.51578947368421, -0.0526315789473699, 0.41052631578947),
all = c(0.42222222222222, -0.18518518518519, 0.27407407407407),
general = c(0.40833333333333, -0.0833333333333299, 0.36666666666667)
),
class = "data.frame", row.names = c(NA, -3L)
)
функция
fu <- function(x) ifelse(x>0, paste0("+", x), x)
выход
data_2018 data_2017 pilot all general
1 3.2 +2.825 +0.51578947368421 +0.42222222222222 +0.40833333333333
2 3.0 0 -0.0526315789473699 -0.18518518518519 -0.0833333333333299
3 3.2 -0.425 +0.41052631578947 +0.27407407407407 +0.36666666666667
Вывод отображается только для lapply
вызова