解决tidyr::unnest_longer()无法循环输入的报错问题
tidyr::unnest_longer() 报错:无法将大小为14的输入循环为大小12
逐行运行代码后定位到tidyr::unnest_longer()是报错根源,错误提示为:第1行无法将大小为14的输入循环为大小12。数据已转为宽格式,存在NULL值,尝试将其替换为NA并使用drop_na()处理,但仍无法解决问题。
原始代码
# 原始代码 df %>% filter(n() > 2L, .by = sn2) %>% pivot_wider(names_from = sn3, values_from = leisure:hyear, values_fn = list) %>% unnest_longer(leisure_1:hyear_2)
报错信息
Error in `unnest_longer()`: ! In row 1, can't recycle input of size 14 to size 12. Backtrace: 1. ... %>% unnest_longer(leisure_1:hyear_2) 2. tidyr::unnest_longer(., leisure_1:hyear_2)
尝试修正后的代码
df %>% filter(n() > 2L, .by = sn2) %>% pivot_wider(names_from = sn3, values_from = leisure:hyear, values_fn = list) %>% mutate(across(everything(), ~ifelse(. == "NULL", NA, .))) %>% drop_na() %>% unnest_longer(leisure_1:hyear_2)
数据结构及期望输出见原文内容。
内容的提问来源于stack exchange,提问作者Victoria
相关产品推荐
相关产品推荐

