有以下原始数据,有必要在此基础上建立回归模型。列的元素充当自变量ind_name。
显然,表格需要“宽”,这可以使用pivot_wider. 但是,在表格转换为宽格式(其中列是元素ind_name)后,数据变为嵌套。也就是说,单元格中没有一个元素,而是一个元素向量。
sample <- readxl::read_xlsx("original.xlsx")
s <- sample[1:1000,]
s <- s %>%
pivot_wider(id_cols = seance_id,
names_from = ind_name,
values_from = criteria_answ) %>%
print(head(10))
# A tibble: 84 x 6
seance_id name2 name1 name3 name5 name4
<chr> <list> <list> <list> <list> <list>
1 3133688 <chr [2]> <chr [2]> <chr [2]> <chr [1]> <NULL>
2 3145092 <chr [4]> <chr [4]> <chr [4]> <chr [1]> <chr [4]>
3 3143656 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]>
4 3145088 <chr [3]> <chr [3]> <chr [3]> <chr [1]> <chr [3]>
5 3145117 <chr [3]> <chr [3]> <chr [3]> <chr [1]> <chr [3]>
6 3148589 <chr [3]> <chr [3]> <chr [3]> <chr [1]> <chr [3]>
7 3135731 <chr [3]> <chr [3]> <chr [3]> <chr [1]> <chr [3]>
8 3145111 <chr [5]> <chr [5]> <chr [5]> <chr [1]> <chr [5]>
9 3149981 <chr [4]> <chr [4]> <chr [4]> <chr [1]> <chr [4]>
10 3150048 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]>
# ... with 74 more rows
unnest(cols = everything())如果将函数或具有类似属性的函数应用于结果unchop,则会发生错误:
Ошибка: Incompatible lengths: 4, 5.
Run `rlang::last_error()` to see where the error occurred.
也就是说,由于嵌套向量的长度不同(并且在某处数据没有嵌套,而只是以正常形式呈现),该函数无法将工作表“分解”为单元格。
问题:如何将数据转化为正常的表格形式,适合在其基础上建立回归模型?作为“正常”视图的示例:
seance_id name1 name2
<dbl> <dbl> <dbl>
1 1 0.396 -0.379
2 1 -0.000982 0.160
3 2 -1.03 0.700
4 2 -1.06 0.208
5 2 0.320 -0.568
也许还有另一种方法来表示这种类型的数据来构建回归模型?在 SO 的英文部分,我没有找到解决方案。