У меня есть фрейм данных, где каждая строка должна содержать в основном значения «Нет ответа» (-1
). Я хотел бы получить первое значение каждой строки, которое не -1
, предпочтительно с использованием чего-то удобного для использования.
# A tibble: 3,222 x 10
tracc1 tracc2 tracc3 tracc4 tracc5 tracc6 tracc7 tracc8 tracc9 tracc10
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 1 -1 -1 -1 -1 -1 7 -1 -1 -1
2 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
3 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
4 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
5 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
6 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
7 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
8 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
9 -1 -1 3 -1 -1 -1 -1 -1 -1 -1
10 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
# ...
Я смог использовать dpylr::unite
, чтобы объединить все столбцы, ноПроблемы возникают, когда одна строка имеет несколько действительных ответов. В приведенном ниже примере строка 1 должна давать 1
вместо 17
.
> df %>%
mutate_at(vars(starts_with("tracc")),
function(t) {if_else(t < 0,"",t)}) %>%
unite("tracc",starts_with("tracc"),sep = "", na.rm = TRUE)
# A tibble: 3,222 x 1
tracc
<chr>
1 17
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 3
10 1
# ...