R使用应用函数而不是循环



我正试图解决一个非常简单的问题,但似乎无法解决。我想将某个列中的特定条件应用于多个列。

cols_to_change<-['d','e','f']

对于一列,d,我可以这样做:

df$d[which(df$criteria<df$d)]<-NA

但对于其他列e、f,我可以执行for循环,但我想使用apply函数。我该怎么做?

如果没有样本数据,很难验证您想要做的事情

cols_to_change <- c("d", "e", "f")
df[cols_to_change] <- lapply(df[cols_to_change], function(x) ifelse(df$criteria < x, NA, x))

注意,lapply是相对于apply的优选版本。

最新更新