Я хочу заменить значения в определенных столбцах во фрейме данных.Я могу сделать это один раз, но он перестает работать, когда я пытаюсь построить функцию.Я также хотел бы повторить функцию для подмножества всех столбцов, и я не уверен, как это сделать.
Вот пример:
library(tidyverse)
Kid = c('Alfie', 'Brenda', 'Charlie', 'Dalma')
Likes_pie = c('Yes', 'Yes', 'No', NA)
Likes_sunshine = c(NA, 'Yes', 'Yes', 'No')
Likes_friendship = c('Yes', NA, 'Yes', 'No')
my.d = cbind(Kid, Likes_pie, Likes_sunshine) %>% as_tibble()
Я хочу поменять местамиОт «Да» до «Т» и от «Нет» до «F» в Likes_pie
и Likes_sunshine
.Но я хочу указать эти два столбца и пропустить Likes_friendship
.Я хочу сохранить NA-ы.Нет никаких значений, кроме «Да» и «Нет».
Можно сделать с одним столбцом:
my.d = my.d %>%
mutate(
Likes_pie = case_when(
Likes_pie == 'Yes' ~ 'T',
Likes_pie == 'No' ~ 'F'
)
)
Но это не работает в функции:
valConverter = function(d, var.value){
d = d %>%
mutate(
var.value = case_when(
var.value == 'Yes' ~ 'T',
var.value == 'No' ~ 'F'
)
)
return(d)
}
my.d = valConverter(my.d, Likes_sunshine)
my.d$Likes_pie
my.d$Likes_sunshine # :E
Предполагая, что это так, как бы я заменил значения столбцов для каждого столбца?Sg как mutate_if(d, c('Likes_pie', 'Likes_sunshine'), function(x) nomConverter(x))
путь?