У меня есть фрейм данных с некоторой информацией о значениях, хранящихся в некоторых именах переменных. В основном, если значение ячейки равно 0, ей следует присвоить NA
; в противном случае я хотел бы присвоить имя переменной в качестве значения. Вероятно, лучше всего объяснить на этом примере:
library(tidyverse)
df <- tibble(observation = 0:5, var1 = as.character(0:5), var2 = as.character(1:6))
df
#> # A tibble: 6 x 3
#> observation var1 var2
#> <int> <chr> <chr>
#> 1 0 0 1
#> 2 1 1 2
#> 3 2 2 3
#> 4 3 3 4
#> 5 4 4 5
#> 6 5 5 6
df %>%
mutate_at(vars(matches("var")),
list(~case_when(. != "0" ~ "test")))
#> # A tibble: 6 x 3
#> observation var1 var2
#> <int> <chr> <chr>
#> 1 0 <NA> test
#> 2 1 test test
#> 3 2 test test
#> 4 3 test test
#> 5 4 test test
#> 6 5 test test
Создано в 2020-02-20 пакетом представитель (v0.3.0)
Я бы хотел, чтобы таблица выглядела следующим образом:
#> # A tibble: 6 x 3
#> observation var1 var2
#> <int> <chr> <chr>
#> 1 0 <NA> var2
#> 2 1 var1 var2
#> 3 2 var1 var2
#> 4 3 var1 var2
#> 5 4 var1 var2
#> 6 5 var1 var2
Я не могу понять, что вставить в оператор case_when
для доступа к имени переменной.
Спасибо!