在R中对数据框中的每一列应用一个函数[重复]

问题描述 投票:0回答:1

我想将数据框中的一系列 "99 "替换为NA。对于一列,我使用了下面这行代码,效果很好。

data$column[data$column == "99"] = NA

然而,由于我有大量的列,我想将此应用于所有列。下面这行代码没有做到这一点。我认为这是因为第三个 "x "又是对数据框架的引用,而不是对特定列的引用。

data = lapply(data, function(x) {x[x == "99"] = NA})

有什么建议可以告诉我应该怎么改?

r apply lapply
1个回答
1
投票

如果你想把所有的99都替换掉,只需要做以下操作

data[data=="99"] <- NA

如果你想坚持使用应用功能

apply(data, 2, function(x) replace(x, x=="99", NA))
© www.soinside.com 2019 - 2024. All rights reserved.