Я пытаюсь использовать loop
через имена столбцов в фрейме данных.
У меня есть набор данных, testset
, который имеет около 100 столбцов. Для упрощения я буду называть эти столбцы в алфавите, a
, b
, c
, ... и т. Д.
Я сделал function
, чтобы преобразовать значения в testset
в другие значение.
mutatefun<-function(i){
i1<-rlang::quo_name(enquo(i))
output<-testset%>%mutate(!! i1:=case_when({{i}} %in% c(1)~0,
{{i}} %in% c(2)~50,
{{i}} %in% c(3)~100,
TRUE~NA_real_))
return(output)
}
Когда я запустил mutatefun(a)
, это сработало. Теперь я хочу использовать эту функцию для нескольких столбцов в testset
С помощью этого поста R: просматривая имена столбцов , я создал varlist
и запустил этот код.
varlist<-c("a","c","e","k")
for(i in varlist){
output<-mutatefun({{i}})}
Однако, он не дал ожидаемых результатов. Вместо этого он возвращает столбец a
как NA
. Я думаю, что i
может считаться только символом, а не объектом testset
.
Не могли бы вы дать мне знать, как решить эту проблему?