unnest_wider, только если столбцы существуют в R - PullRequest
1 голос
/ 06 августа 2020

Я хотел бы unnest_wider условно в зависимости от того, существует ли столбец в данных. Если столбец существует, то он должен unnest_wider, а если нет, то ничего делать не должен. Я надеялся, что смогу сделать что-то вроде:

df1 <- tibble(letters = c('a', 'b', 'c'), values1 = list(1:2, 3:4, 5:6))  

# works
df1 %>% unnest_wider(values1, names_repair = ~gsub('...', 'values1_', ., fixed = TRUE)) 

# doesn't work
df1 %>% unnest_wider(across(any_of("values2")), names_repair = ~gsub('...', 'values1_', ., fixed = TRUE)) 

Я знаю, почему последняя строка кода не работает, но я хотел бы выполнить sh нечто подобное. Спасибо.

1 Ответ

0 голосов
/ 06 августа 2020

Хотелось бы, чтобы это работало:

conditional_unnest <- function(df, var){
  if(var %in% names(df)){
    return(unnest_wider(df, var, names_repair = ~gsub('...', 'values1_', ., fixed = TRUE)))
  } else{
    return(df)
  }
}

df1 %>%
  conditional_unnest("values1")
...