为什么 pivot_wider 会产生嵌套的 objects/lists 和 NULL?
Why does pivot_wider produce nested objects/lists and NULLs?
我有一个包含对及其增量的数据框。当我尝试扩大此 df 时,我收到一个 table,列表中嵌套了双对象,尽管它们看起来像数据集的常规值。此外,pivot_wider
产生 NULL
值,即使我去 values_fill = NA
.
但是,当我获取此数据框的一个子集并尝试扩大它时,一切正常。为什么?没看懂。
如何获得常规宽度 table?
> test_df %>% pivot_wider(names_from = pair, values_from = delta)
# A tibble: 1 x 400
pair_ind11_ind04 pair_ind11_ind03 pair_ind11_ind10 pair_ind12_ind11 pair_ind12_ind04
<list> <list> <list> <list> <list>
1 <dbl [5,156]> <dbl [5,378]> <dbl [5,805]> <dbl [7,054]> <dbl [6,662]>
# ... with 395 more variables: pair_ind12_ind06 <list>, pair_ind12_ind07 <list>,
# pair_ind12_ind02 <list>, pair_ind12_ind08 <list>, pair_ind12_ind09 <list>,
# pair_ind12_ind01 <list>, pair_ind12_ind05 <list>, pair_ind13_ind12 <list>,
# pair_ind13_ind04 <list>, pair_ind13_ind03 <list>, pair_ind13_ind10 <list>,
# pair_ind17_ind12 <list>, pair_ind17_ind04 <list>, pair_ind17_ind03 <list>,
# pair_ind17_ind10 <list>, pair_ind18_ind11 <list>, pair_ind18_ind12 <list>,
# pair_ind18_ind13 <list>, pair_ind18_ind17 <list>, pair_ind18_ind06 <list>, ...
# Taking a subset of my df
> test_df[1:150,] %>% pivot_wider(names_from = pair, values_from = delta)
# A tibble: 1 x 150
pair_ind11_ind04 pair_ind11_ind03 pair_ind11_ind10 pair_ind12_ind11 pair_ind12_ind04
<dbl> <dbl> <dbl> <dbl> <dbl>
1 1 0 0 1 1
# ... with 145 more variables: pair_ind12_ind06 <dbl>, pair_ind12_ind07 <dbl>,
# pair_ind12_ind02 <dbl>, pair_ind12_ind08 <dbl>, pair_ind12_ind09 <dbl>,
# pair_ind12_ind01 <dbl>, pair_ind12_ind05 <dbl>, pair_ind13_ind12 <dbl>,
# pair_ind13_ind04 <dbl>, pair_ind13_ind03 <dbl>, pair_ind13_ind10 <dbl>,
# pair_ind17_ind12 <dbl>, pair_ind17_ind04 <dbl>, pair_ind17_ind03 <dbl>,
# pair_ind17_ind10 <dbl>, pair_ind18_ind11 <dbl>, pair_ind18_ind12 <dbl>,
# pair_ind18_ind13 <dbl>, pair_ind18_ind17 <dbl>, pair_ind18_ind06 <dbl>, ...
示例数据:
structure(list(delta = c(1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1,
1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1,
0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0),
pair = c("pair_ind11_ind04", "pair_ind11_ind03", "pair_ind11_ind10",
"pair_ind12_ind11", "pair_ind12_ind04", "pair_ind12_ind06",
"pair_ind12_ind07", "pair_ind12_ind02", "pair_ind12_ind08",
"pair_ind12_ind09", "pair_ind12_ind01", "pair_ind12_ind05",
"pair_ind13_ind12", "pair_ind13_ind04", "pair_ind13_ind03",
"pair_ind13_ind10", "pair_ind17_ind12", "pair_ind17_ind04",
"pair_ind17_ind03", "pair_ind17_ind10", "pair_ind18_ind11",
"pair_ind18_ind12", "pair_ind18_ind13", "pair_ind18_ind17",
"pair_ind18_ind06", "pair_ind18_ind07", "pair_ind18_ind16",
"pair_ind18_ind02", "pair_ind18_ind03", "pair_ind18_ind08",
"pair_ind18_ind09", "pair_ind18_ind10", "pair_ind18_ind14",
"pair_ind18_ind15", "pair_ind18_ind01", "pair_ind18_ind05",
"pair_ind04_ind02", "pair_ind04_ind03", "pair_ind04_ind01",
"pair_ind06_ind04", "pair_ind06_ind03", "pair_ind07_ind04",
"pair_ind07_ind03", "pair_ind16_ind12", "pair_ind16_ind04",
"pair_ind16_ind03", "pair_ind16_ind10", "pair_ind03_ind02",
"pair_ind03_ind01", "pair_ind08_ind04", "pair_ind08_ind03",
"pair_ind09_ind04", "pair_ind09_ind03", "pair_ind10_ind04",
"pair_ind10_ind06", "pair_ind10_ind07", "pair_ind10_ind02",
"pair_ind10_ind08", "pair_ind10_ind09", "pair_ind10_ind01",
"pair_ind10_ind05", "pair_ind14_ind12", "pair_ind14_ind04",
"pair_ind14_ind03", "pair_ind14_ind10", "pair_ind15_ind12",
"pair_ind15_ind04", "pair_ind15_ind03", "pair_ind15_ind10",
"pair_ind20_ind12", "pair_ind20_ind18", "pair_ind20_ind04",
"pair_ind20_ind03", "pair_ind20_ind10", "pair_ind20_ind19",
"pair_ind05_ind04", "pair_ind05_ind03", "pair_ind19_ind11",
"pair_ind19_ind12", "pair_ind19_ind13", "pair_ind19_ind17",
"pair_ind19_ind06", "pair_ind19_ind07", "pair_ind19_ind16",
"pair_ind19_ind02", "pair_ind19_ind03", "pair_ind19_ind08",
"pair_ind19_ind09", "pair_ind19_ind10", "pair_ind19_ind14",
"pair_ind19_ind15", "pair_ind19_ind01", "pair_ind19_ind05",
"pair_ind40_ind27", "pair_ind40_ind29", "pair_ind40_ind35",
"pair_ind40_ind28", "pair_ind40_ind30", "pair_ind40_ind33",
"pair_ind27_ind21", "pair_ind27_ind26", "pair_ind27_ind23",
"pair_ind27_ind24", "pair_ind27_ind22", "pair_ind27_ind25",
"pair_ind34_ind27", "pair_ind34_ind29", "pair_ind34_ind28",
"pair_ind34_ind30", "pair_ind34_ind33", "pair_ind29_ind27",
"pair_ind29_ind21", "pair_ind29_ind26", "pair_ind29_ind23",
"pair_ind29_ind24", "pair_ind29_ind22", "pair_ind29_ind25",
"pair_ind32_ind27", "pair_ind32_ind29", "pair_ind32_ind28",
"pair_ind32_ind30", "pair_ind35_ind34", "pair_ind35_ind29",
"pair_ind35_ind32", "pair_ind35_ind21", "pair_ind35_ind28",
"pair_ind35_ind26", "pair_ind35_ind33", "pair_ind35_ind23",
"pair_ind35_ind24", "pair_ind35_ind31", "pair_ind35_ind22",
"pair_ind35_ind25", "pair_ind28_ind27", "pair_ind28_ind21",
"pair_ind28_ind26", "pair_ind28_ind23", "pair_ind28_ind24",
"pair_ind28_ind22", "pair_ind28_ind25", "pair_ind30_ind29",
"pair_ind30_ind21", "pair_ind30_ind28", "pair_ind30_ind26",
"pair_ind30_ind23", "pair_ind30_ind24", "pair_ind30_ind22",
"pair_ind30_ind25", "pair_ind33_ind27", "pair_ind33_ind32",
"pair_ind33_ind21", "pair_ind33_ind26", "pair_ind33_ind30",
"pair_ind33_ind23", "pair_ind33_ind24", "pair_ind33_ind31",
"pair_ind33_ind22", "pair_ind33_ind25", "pair_ind39_ind27",
"pair_ind39_ind29", "pair_ind39_ind35", "pair_ind39_ind28",
"pair_ind39_ind30", "pair_ind39_ind33", "pair_ind41_ind27",
"pair_ind41_ind29", "pair_ind41_ind35", "pair_ind41_ind28",
"pair_ind41_ind30", "pair_ind41_ind33", "pair_ind31_ind27",
"pair_ind31_ind29", "pair_ind31_ind28", "pair_ind31_ind30",
"pair_ind36_ind27", "pair_ind36_ind29", "pair_ind36_ind35",
"pair_ind36_ind28", "pair_ind36_ind30", "pair_ind36_ind33",
"pair_ind37_ind27", "pair_ind37_ind29", "pair_ind37_ind35",
"pair_ind37_ind28", "pair_ind37_ind30", "pair_ind37_ind33",
"pair_ind38_ind27", "pair_ind38_ind29", "pair_ind38_ind35",
"pair_ind38_ind28", "pair_ind38_ind30", "pair_ind38_ind33",
"pair_ind14_ind02", "pair_ind14_ind09", "pair_ind14_ind03",
"pair_ind14_ind08", "pair_ind14_ind10", "pair_ind14_ind05",
"pair_ind15_ind02", "pair_ind15_ind09")), row.names = c(NA,
-200L), class = c("tbl_df", "tbl", "data.frame"))
好吧,unchop(everything())
帮我解决了这个问题。我不会删除我的问题,因为它可能会在将来帮助其他用户。
test_df %>%
pivot_wider(names_from = pair, values_from = delta) %>%
unchop(everything())
unchop() makes df longer by expanding list-columns so that each
element of the list-column gets its own row in the output.
我有一个包含对及其增量的数据框。当我尝试扩大此 df 时,我收到一个 table,列表中嵌套了双对象,尽管它们看起来像数据集的常规值。此外,pivot_wider
产生 NULL
值,即使我去 values_fill = NA
.
但是,当我获取此数据框的一个子集并尝试扩大它时,一切正常。为什么?没看懂。
如何获得常规宽度 table?
> test_df %>% pivot_wider(names_from = pair, values_from = delta)
# A tibble: 1 x 400
pair_ind11_ind04 pair_ind11_ind03 pair_ind11_ind10 pair_ind12_ind11 pair_ind12_ind04
<list> <list> <list> <list> <list>
1 <dbl [5,156]> <dbl [5,378]> <dbl [5,805]> <dbl [7,054]> <dbl [6,662]>
# ... with 395 more variables: pair_ind12_ind06 <list>, pair_ind12_ind07 <list>,
# pair_ind12_ind02 <list>, pair_ind12_ind08 <list>, pair_ind12_ind09 <list>,
# pair_ind12_ind01 <list>, pair_ind12_ind05 <list>, pair_ind13_ind12 <list>,
# pair_ind13_ind04 <list>, pair_ind13_ind03 <list>, pair_ind13_ind10 <list>,
# pair_ind17_ind12 <list>, pair_ind17_ind04 <list>, pair_ind17_ind03 <list>,
# pair_ind17_ind10 <list>, pair_ind18_ind11 <list>, pair_ind18_ind12 <list>,
# pair_ind18_ind13 <list>, pair_ind18_ind17 <list>, pair_ind18_ind06 <list>, ...
# Taking a subset of my df
> test_df[1:150,] %>% pivot_wider(names_from = pair, values_from = delta)
# A tibble: 1 x 150
pair_ind11_ind04 pair_ind11_ind03 pair_ind11_ind10 pair_ind12_ind11 pair_ind12_ind04
<dbl> <dbl> <dbl> <dbl> <dbl>
1 1 0 0 1 1
# ... with 145 more variables: pair_ind12_ind06 <dbl>, pair_ind12_ind07 <dbl>,
# pair_ind12_ind02 <dbl>, pair_ind12_ind08 <dbl>, pair_ind12_ind09 <dbl>,
# pair_ind12_ind01 <dbl>, pair_ind12_ind05 <dbl>, pair_ind13_ind12 <dbl>,
# pair_ind13_ind04 <dbl>, pair_ind13_ind03 <dbl>, pair_ind13_ind10 <dbl>,
# pair_ind17_ind12 <dbl>, pair_ind17_ind04 <dbl>, pair_ind17_ind03 <dbl>,
# pair_ind17_ind10 <dbl>, pair_ind18_ind11 <dbl>, pair_ind18_ind12 <dbl>,
# pair_ind18_ind13 <dbl>, pair_ind18_ind17 <dbl>, pair_ind18_ind06 <dbl>, ...
示例数据:
structure(list(delta = c(1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1,
1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1,
0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0),
pair = c("pair_ind11_ind04", "pair_ind11_ind03", "pair_ind11_ind10",
"pair_ind12_ind11", "pair_ind12_ind04", "pair_ind12_ind06",
"pair_ind12_ind07", "pair_ind12_ind02", "pair_ind12_ind08",
"pair_ind12_ind09", "pair_ind12_ind01", "pair_ind12_ind05",
"pair_ind13_ind12", "pair_ind13_ind04", "pair_ind13_ind03",
"pair_ind13_ind10", "pair_ind17_ind12", "pair_ind17_ind04",
"pair_ind17_ind03", "pair_ind17_ind10", "pair_ind18_ind11",
"pair_ind18_ind12", "pair_ind18_ind13", "pair_ind18_ind17",
"pair_ind18_ind06", "pair_ind18_ind07", "pair_ind18_ind16",
"pair_ind18_ind02", "pair_ind18_ind03", "pair_ind18_ind08",
"pair_ind18_ind09", "pair_ind18_ind10", "pair_ind18_ind14",
"pair_ind18_ind15", "pair_ind18_ind01", "pair_ind18_ind05",
"pair_ind04_ind02", "pair_ind04_ind03", "pair_ind04_ind01",
"pair_ind06_ind04", "pair_ind06_ind03", "pair_ind07_ind04",
"pair_ind07_ind03", "pair_ind16_ind12", "pair_ind16_ind04",
"pair_ind16_ind03", "pair_ind16_ind10", "pair_ind03_ind02",
"pair_ind03_ind01", "pair_ind08_ind04", "pair_ind08_ind03",
"pair_ind09_ind04", "pair_ind09_ind03", "pair_ind10_ind04",
"pair_ind10_ind06", "pair_ind10_ind07", "pair_ind10_ind02",
"pair_ind10_ind08", "pair_ind10_ind09", "pair_ind10_ind01",
"pair_ind10_ind05", "pair_ind14_ind12", "pair_ind14_ind04",
"pair_ind14_ind03", "pair_ind14_ind10", "pair_ind15_ind12",
"pair_ind15_ind04", "pair_ind15_ind03", "pair_ind15_ind10",
"pair_ind20_ind12", "pair_ind20_ind18", "pair_ind20_ind04",
"pair_ind20_ind03", "pair_ind20_ind10", "pair_ind20_ind19",
"pair_ind05_ind04", "pair_ind05_ind03", "pair_ind19_ind11",
"pair_ind19_ind12", "pair_ind19_ind13", "pair_ind19_ind17",
"pair_ind19_ind06", "pair_ind19_ind07", "pair_ind19_ind16",
"pair_ind19_ind02", "pair_ind19_ind03", "pair_ind19_ind08",
"pair_ind19_ind09", "pair_ind19_ind10", "pair_ind19_ind14",
"pair_ind19_ind15", "pair_ind19_ind01", "pair_ind19_ind05",
"pair_ind40_ind27", "pair_ind40_ind29", "pair_ind40_ind35",
"pair_ind40_ind28", "pair_ind40_ind30", "pair_ind40_ind33",
"pair_ind27_ind21", "pair_ind27_ind26", "pair_ind27_ind23",
"pair_ind27_ind24", "pair_ind27_ind22", "pair_ind27_ind25",
"pair_ind34_ind27", "pair_ind34_ind29", "pair_ind34_ind28",
"pair_ind34_ind30", "pair_ind34_ind33", "pair_ind29_ind27",
"pair_ind29_ind21", "pair_ind29_ind26", "pair_ind29_ind23",
"pair_ind29_ind24", "pair_ind29_ind22", "pair_ind29_ind25",
"pair_ind32_ind27", "pair_ind32_ind29", "pair_ind32_ind28",
"pair_ind32_ind30", "pair_ind35_ind34", "pair_ind35_ind29",
"pair_ind35_ind32", "pair_ind35_ind21", "pair_ind35_ind28",
"pair_ind35_ind26", "pair_ind35_ind33", "pair_ind35_ind23",
"pair_ind35_ind24", "pair_ind35_ind31", "pair_ind35_ind22",
"pair_ind35_ind25", "pair_ind28_ind27", "pair_ind28_ind21",
"pair_ind28_ind26", "pair_ind28_ind23", "pair_ind28_ind24",
"pair_ind28_ind22", "pair_ind28_ind25", "pair_ind30_ind29",
"pair_ind30_ind21", "pair_ind30_ind28", "pair_ind30_ind26",
"pair_ind30_ind23", "pair_ind30_ind24", "pair_ind30_ind22",
"pair_ind30_ind25", "pair_ind33_ind27", "pair_ind33_ind32",
"pair_ind33_ind21", "pair_ind33_ind26", "pair_ind33_ind30",
"pair_ind33_ind23", "pair_ind33_ind24", "pair_ind33_ind31",
"pair_ind33_ind22", "pair_ind33_ind25", "pair_ind39_ind27",
"pair_ind39_ind29", "pair_ind39_ind35", "pair_ind39_ind28",
"pair_ind39_ind30", "pair_ind39_ind33", "pair_ind41_ind27",
"pair_ind41_ind29", "pair_ind41_ind35", "pair_ind41_ind28",
"pair_ind41_ind30", "pair_ind41_ind33", "pair_ind31_ind27",
"pair_ind31_ind29", "pair_ind31_ind28", "pair_ind31_ind30",
"pair_ind36_ind27", "pair_ind36_ind29", "pair_ind36_ind35",
"pair_ind36_ind28", "pair_ind36_ind30", "pair_ind36_ind33",
"pair_ind37_ind27", "pair_ind37_ind29", "pair_ind37_ind35",
"pair_ind37_ind28", "pair_ind37_ind30", "pair_ind37_ind33",
"pair_ind38_ind27", "pair_ind38_ind29", "pair_ind38_ind35",
"pair_ind38_ind28", "pair_ind38_ind30", "pair_ind38_ind33",
"pair_ind14_ind02", "pair_ind14_ind09", "pair_ind14_ind03",
"pair_ind14_ind08", "pair_ind14_ind10", "pair_ind14_ind05",
"pair_ind15_ind02", "pair_ind15_ind09")), row.names = c(NA,
-200L), class = c("tbl_df", "tbl", "data.frame"))
好吧,unchop(everything())
帮我解决了这个问题。我不会删除我的问题,因为它可能会在将来帮助其他用户。
test_df %>%
pivot_wider(names_from = pair, values_from = delta) %>%
unchop(everything())
unchop() makes df longer by expanding list-columns so that each element of the list-column gets its own row in the output.