Предположим, у меня есть date.frame вроде:
df <- data.frame(a=1:5, b=sample(1:5, 5, replace=TRUE), c=5:1)
df
a b c
1 1 4 5
2 2 3 4
3 3 5 3
4 4 2 2
5 5 1 1
, и мне нужно заменить все 5
на NA
в столбце b
& c
, а затем вернуться к df
:
df
a b c
1 1 4 NA
2 2 3 4
3 3 NA 3
4 4 2 2
5 5 1 1
Но я хочу сделать общую функцию apply()
вместо использования replace()
для каждой из них, потому что в реальных данных нужно заменить много переменных.Предположим, я определил список переменных:
var <- c("b", "c")
и получил что-то вроде:
df <- within(df, sapply(var, function(x) x <- replace(x, x==5, NA)))
, но ничего не происходит.Я подумал, есть ли способ решить эту проблему с помощью чего-то похожего на вышеописанное, передав переменный список имен столбцов из data.frame в общую функцию apply / plyr
(или, возможно, другими совершенно другими способами).Благодаря ~