R:错误:在 dplyr 中使用 unnest 时长度不兼容

E.O*_*.O. 6 r dplyr

我有一个大tibble(这里)。我通过使用这个原始数据集并运行以下命令创建了它(这里是上一篇文章):

#this code seemed to work
    library(tidyverse)
    df_tib <- df_full_subset %>%
      pivot_longer(cols = everything(), names_to = c("name", ".value"), names_pattern = "(.*)_(.*)") %>%
      select(-name) %>%
      pivot_wider(names_from = "01", values_from = "02", values_fn = list)
Run Code Online (Sandbox Code Playgroud)

正如在上一篇文章中可以看到的,最后一段代码用于取消数据的嵌套。这对我来说不起作用,所以我修改了小标题,发现了一些垃圾列(例如一列 NA),并删除了那些可能有帮助的想法。但是,我不断收到相同的错误:"Error: Incompatible lengths: 254, 257"。这对我来说就像dplyr是在与第 254 行和第 257 行中的 NA 作斗争,但我看过其他帖子,这似乎很容易处理(就像使用的这个filter),并且这些解决方案不适用于此数据。

#cleaning the data
df_tib$habitat <- df_tib$habitat_
df_tib$species <- df_tib$species_
df_tib <- janitor::clean_names(df_tib)
df_tib <- df_tib %>% 
  select(-habitat_,-species_, -na)

df_tib <- df_tib %>% 
  unnest(cols = everything()) #does not work
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助。

Ben*_*Ben 0

X我刚刚注意到您的数据中有第一列,不需要包含在您的pivot_longer声明中。要旋转除 X 之外的所有列,您可以执行以下操作pivot_longer(cols = -X, ...)。

\n

我还添加了drop_na您可能想要的内容pivot_longer。该NA列还缺少值、objectid 和 editMode。

\n

试试这个:

\n
library(tidyverse)\n\ndf %>%\n  pivot_longer(cols = -X, names_to = c("name", ".value"), names_pattern = "(.*)_(.*)") %>%\n  drop_na %>%\n  select(-name) %>%\n  pivot_wider(names_from = "01", values_from = "02", values_fn = list) %>%\n  unnest(cols = everything())\n
Run Code Online (Sandbox Code Playgroud)\n

输出

\n
       X bearing_degrees coordinates distance_meters habitat_ how_many_animal\xe2\x80\xa6 observers species_ was_a_group_of_\xe2\x80\xa6 was_the_animal_\xe2\x80\xa6 width_of_the_ro\xe2\x80\xa6 what_species_of\xe2\x80\xa6 livestock\n   <int> <chr>           <chr>       <chr>           <chr>    <chr>            <chr>     <chr>    <chr>            <chr>            <chr>            <chr>            <chr>    \n 1     1 200             N1.20701 E\xe2\x80\xa6 100             open_sc\xe2\x80\xa6 4                TW2       giraffe  group_           "alive"          single_lane      NA               NA       \n 2     2 300             N1.20195 E\xe2\x80\xa6 20              commiph\xe2\x80\xa6 NA               TW2 o     gerenuk  individual       "alive"          single_lane      NA               NA       \n 3     3 10              N1.18823 E\xe2\x80\xa6 80              open_sc\xe2\x80\xa6 NA               TW2       bird     individual       "alive"          single_lane      Ostrich          NA       \n 4     4 20              N1.15642 E\xe2\x80\xa6 180             open_sc\xe2\x80\xa6 300              TW2       livesto\xe2\x80\xa6 group_           "alive"          single_lane      NA               shoat    \n 5     5 300             N1.14868 E\xe2\x80\xa6 30              open_sc\xe2\x80\xa6 7                TW2       livesto\xe2\x80\xa6 group_           "alive"          single_lane      NA               cattle   \n 6     6 70              N1.13874 E\xe2\x80\xa6 200             open_sc\xe2\x80\xa6 34               TW2       livesto\xe2\x80\xa6 group_           "alive"          single_lane      NA               cattle   \n 7     7 20              N1.11442 E\xe2\x80\xa6 40              disturb\xe2\x80\xa6 12               TW2       livesto\xe2\x80\xa6 group_           "alive"          single_lane      NA               cattle   \n 8     8 NA              N1.03003 E\xe2\x80\xa6 NA              commiph\xe2\x80\xa6 NA               TW2       jackal   NA               "roadkill"       single_lane      NA               NA       \n 9     9 40              N1.97961 E\xe2\x80\xa6 50              mixed_s\xe2\x80\xa6 null             TW2       gerenuk  individual       "alive,\\n    wh\xe2\x80\xa6 NA               NA               null     \n10    10 20              N0.85822 E\xe2\x80\xa6 20              dense_s\xe2\x80\xa6 53               TW2       baboon   group_           "alive"          single_lane      NA               NA       \n# \xe2\x80\xa6 with 251 more rows, and 5 more variables: approximate_age_of_individual <chr>, approximate_number_of_days_sinc <chr>, sex_of_animal <chr>, generated_note_survey <chr>,\n#   `_date` <chr>\n
Run Code Online (Sandbox Code Playgroud)\n