为什么 pivot_longer 使用 NA 创建额外的 2 行?

问题描述 投票:0回答:0

我来自 here 在那里我询问如何 pivot_longer 共享一列作为时间指示器,将它们传输 2 个变量块

现在将代码扩展到我的数据库,我发现每个 id 都被重复添加了额外的行,但根本没有任何信息。变量的值中可以有NA,数据集包含缺失,但为什么时间列中有NA?这实际上来自 pivot_longer

之后的分离变量
# 1st step

df2 <- df %>% pivot_longer(!c(id, sexo, edad0, grup_int), names_pattern = "(.*)_0*([0-9]+)$", names_to = c(".value", "time"))

# what i don't understand is the 2 extra rows with the same id but no values at all  in time, edad0, grup_int. I looked into the code but I am missing something for sure

A tibble: 6 × 15
        id sexo  edad0 grup_int time   peso crt_ppara crt_ppard crt_pparg crt_nr1h3 crt_nr1h2 crt_rxra
     <dbl> <fct> <dbl> <fct>    <chr> <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>    <dbl>
1   1.40e8 1        76 2        NA     NA        NA        NA        NA        NA        NA       NA  
2   1.40e8 1        76 2        NA     NA        NA        NA        NA        NA        NA       NA  
3   1.40e8 1        76 2        1      52.9      20.3      17.4      23.3      21.5      17.5     12.8
4   1.40e8 1        76 2        3      50.5      NA        NA        NA        NA        NA       NA  
5   1.30e8 0        70 2        NA     NA        NA        NA        NA        NA        NA       NA  
6   1.30e8 0        70 2        NA     NA        NA        NA        NA        NA        NA       NA  

这是代表

df <- structure(list(id = c(120715012, 110110005, 120715020, 120715022, 
111201006, 120715021, 50203031, 71801001, 60901030, 140103023, 
111201017, 60901031, 140102090, 60901020, 110104024, 120715029, 
60901037, 140102089, 50521002, 120715033), sample_name = c("A2582200012000006001", 
"A2571600005000006001", "A2582200020000006001", "A2582200022000006001", 
"A2576000006000006001", "A2582200021000006001", "A2537700031000006001", 
"A2564800001000006001", "A2552500030000006001", "A2592000023000006001", 
"A2576000017000006001", "A2552500031000006001", "A2591900090000006001", 
"A2552500020000006001", "A2571200024000006001", "A2582200029000006001", 
"A2552500037000006001", "A2591900089000006001", "A2542900002000006001", 
"A2582200033000006001"), experiment_name = c("OCW07_2022_04_26_110614.eds", 
"OCW06_2022_04_26_110610.eds", "OCW06_2022_04_26_110610.eds", 
"OCW07_2022_04_26_110614.eds", "OCW09_2022_04_26_132510.eds", 
"OCW07_2022_04_26_110614.eds", "OCW10_2022_04_26_132513.eds", 
"OCW10_2022_04_26_132513.eds", "OCW09_2022_04_26_132510.eds", 
"OCW09_2022_04_26_132510.eds", "OCW08_2022_04_26_132458.eds", 
"OCW10_2022_04_26_132513.eds", "OCW07_2022_04_26_110614.eds", 
"OCW06_2022_04_26_110610.eds", "OCW06_2022_04_26_110610.eds", 
"OCW09_2022_04_26_132510.eds", "OCW10_2022_04_26_132513.eds", 
"OCW09_2022_04_26_132510.eds", "OCW11_2022_04_26_132517.eds", 
"OCW10_2022_04_26_132513.eds"), sexo = structure(c(2L, 1L, 2L, 
2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 
2L), levels = c("0", "1", "9"), class = "factor"), edad0 = c(64, 
58, 73, 75, 70, 67, 59, 66, 71, 68, 67, 69, 80, 66, 70, 67, 60, 
62, 60, 68), grup_int = structure(c(3L, 1L, 1L, 1L, 1L, 1L, 3L, 
1L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 1L, 2L, 1L, 3L, 1L), levels = c("1", 
"2", "3"), class = "factor"), peso_1 = c(81, 96.5, 102, 68.5, 
77.5, 76.2, 96.9, 81.5, 100, 81.5, 71.7, 82.5, 81.5, 84.3, 98.9, 
73, 63.5, 70, 90.4, 69), peso_3 = c(74.5, 95.2, 100.5, 60, 76.8, 
76, 100.2, 80.8, 111.5, 83, 72.1, 75, 82.5, 83.7, 98.2, 72, 61.5, 
69.7, 91.4, 74.3), crt_ppara_01 = c(19.667, 20.055, 19.719, 20.49, 
20.472, NA, 20.345, 19.788, 19.674, NA, NA, 20.833, 21.253, NA, 
20.337, NA, 21.621, 21.456, NA, 20.315), crt_ppard_01 = c(16.136, 
17.367, 17.296, 17.615, 17.421, 16.59, 17.801, 16.957, 16.692, 
18.922, 15.734, 18.107, 18.579, 16.744, 18.261, 17.758, 18.684, 
18.085, NA, 17.27), crt_pparg_01 = c(22.346, 24.017, 23.806, 
24.849, 24.072, 23.854, 24.749, 23.82, 22.673, 25.671, 22.568, 
25.535, 24.913, 24.563, 24.397, 22.694, 26.475, 25.566, NA, 24.266
), crt_nr1h3_01 = c(20.781, 21.426, 21.912, 22.443, 21.733, 20.831, 
22.83, 22.409, 21.798, 22.66, 20.245, 22.988, 23.366, 22.407, 
22.71, 22.231, 23.703, 22.749, 21.904, 21.676), crt_nr1h2_01 = c(17.571, 
18.75, 17.86, 18.789, 18.273, 18.074, 19.265, 18.476, 18.414, 
19.072, 16.215, 19.595, 20.194, 18.49, 19.191, 18.793, 19.803, 
18.793, 19.236, 18.616), crt_rxra_01 = c(12.869, 14.813, 14.042, 
15.005, 14.551, 14.142, 15.273, 13.817, 14.026, 14.839, 12.942, 
14.864, 15.823, 14.579, 15.578, 14.736, 15.592, 15.261, NA, 14.022
), crt_rxrb_01 = c(16.355, 17.425, 17.643, 17.839, 17.542, 16.662, 
18.546, 16.585, 16.737, 18.415, 18.288, 17.742, 18.724, 17.388, 
17.959, 17.751, 17.886, 17.932, 16.97, 16.805), crt_cyp27a1_01 = c(17.333, 
18.148, 18.788, 19.458, 18.09, 17.025, 18.97, 17.013, 17.578, 
17.713, 16.217, 18.492, 20.224, 18.043, 18.645, 17.758, 19.202, 
19.452, NA, 18.096), crt_abca1_01 = c(17.708, 19.142, 18.271, 
19.261, 18.665, 18.536, 18.252, 16.649, 16.815, 18.781, 16.886, 
18.165, 18.613, 17.79, 19.368, 18.18, 19.612, 18.812, NA, 17.748
)), row.names = c(NA, -20L), class = "data.frame")
r tidyr na
© www.soinside.com 2019 - 2024. All rights reserved.