为什么replace_with_na无法识别我的变量名?

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

我有很多时间序列数据。我想将变量perc_left的所有0值(给定入学学生的剩余百分比)替换为NA,以便这些值不会出现在我的可视化中。

我写:

throughput%>%naniar::replace_with_na(replace = list (perc_left==0))

或者:

 throughput%>%naniar::replace_with_na(replace = list (perc_left<0.00001))

但是该函数不仅拒绝转换我的值,甚至拒绝识别我的变量名!

我在做什么错?

数据摘录:

structure(list(ï..Period = structure(c(1L, 11L, 2L, 12L, 3L, 
13L, 4L, 14L, 5L, 15L, 6L, 16L, 7L, 17L, 8L, 2L, 12L, 3L, 13L, 
4L), .Label = c("HT2012", "HT2013", "HT2014", "HT2015", "HT2016", 
"HT2017", "HT2018", "HT2019", "HT2020", "HT2021", "VT2013", "VT2014", 
"VT2015", "VT2016", "VT2017", "VT2018", "VT2019", "VT2020", "VT2021", 
"VT2022"), class = "factor"), Period.i.ordning = c(1L, 2L, 3L, 
4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 1L, 2L, 
3L, 4L, 5L), Registrerade = c(107L, 99L, 84L, 85L, 73L, 67L, 
11L, 9L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 100L, 90L, 81L, 76L, 71L
), Endast.omregistrerade = c(1L, 0L, 1L, 1L, 2L, 6L, 6L, 3L, 
5L, 4L, 3L, 1L, 2L, 0L, 0L, 0L, 1L, 1L, 4L, 3L), Tillkommande..byte = c(5L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 
1L, 0L, 0L), Tillkommande..senare.del = c(0L, 3L, 1L, 1L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L), 
    UppehÃ.ll = c(2L, 1L, 3L, 2L, 2L, 10L, 7L, 1L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L), Avbrott = c(3L, 8L, 
    0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 6L, 6L, 
    1L, 1L, 1L), Bortfall = c(0L, 6L, 11L, 12L, 21L, 20L, 77L, 
    85L, 90L, 91L, 93L, 94L, 93L, 93L, 94L, 0L, 4L, 10L, 11L, 
    14L), AvgÃ.ende..byte = c(0L, 0L, 3L, 0L, 1L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L), Avklarad = c(0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L), Examen = c(0, 0, 0, 0, 0, 17, 16, 9, 4, 
    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), ADMISSIONROUND_ID = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
    2L, 2L, 2L, 2L), .Label = c("HT2012", "HT2013", "HT2014", 
    "HT2015", "HT2016", "HT2017", "HT2018", "HT2019"), class = "factor"), 
    startpop = c(107, 107, 107, 107, 107, 107, 107, 107, 107, 
    107, 107, 107, 107, 107, 107, 100, 100, 100, 100, 100), perc_left = c(1, 
    0.925233644859813, 0.785046728971963, 0.794392523364486, 
    0.682242990654206, 0.626168224299065, 0.102803738317757, 
    0.0841121495327103, 0.00934579439252336, 0.00934579439252336, 
    0, 0, 0, 0.00934579439252336, 0, 1, 0.9, 0.81, 0.76, 0.71
    ), totexam = c(47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 
    47, 47, 47, 47, 47, 47, 47, 47, 47)), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -20L), groups = structure(list(
    ADMISSIONROUND_ID = structure(1:2, .Label = c("HT2012", "HT2013", 
    "HT2014", "HT2015", "HT2016", "HT2017", "HT2018", "HT2019"
    ), class = "factor"), .rows = list(1:15, 16:20)), row.names = c(NA, 
-2L), class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE))

大数据摘录:

structure(list(ï..Period = structure(c(1L, 11L, 2L, 12L, 3L, 
13L, 4L, 14L, 5L, 15L, 6L, 16L, 7L, 17L, 8L, 2L, 12L, 3L, 13L, 
4L, 14L, 5L, 15L, 6L, 16L, 7L, 17L, 8L, 3L, 13L, 4L, 14L, 5L, 
15L, 6L, 16L, 7L, 17L, 8L, 4L, 14L, 5L, 15L, 6L, 16L, 7L, 17L, 
8L, 5L, 15L, 6L, 16L, 7L, 17L, 8L, 6L, 16L, 7L, 17L, 8L, 18L, 
7L, 17L, 8L, 18L, 9L, 19L, 8L, 18L, 9L, 19L, 10L, 20L), .Label = c("HT2012", 
"HT2013", "HT2014", "HT2015", "HT2016", "HT2017", "HT2018", "HT2019", 
"HT2020", "HT2021", "VT2013", "VT2014", "VT2015", "VT2016", "VT2017", 
"VT2018", "VT2019", "VT2020", "VT2021", "VT2022"), class = "factor"), 
    Period.i.ordning = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 
    10L, 11L, 12L, 13L, 14L, 15L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 
    8L, 9L, 10L, 11L, 12L, 13L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
    9L, 10L, 11L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 1L, 2L, 
    3L, 4L, 5L, 6L, 7L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 
    5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L), Registrerade = c(107L, 99L, 
    84L, 85L, 73L, 67L, 11L, 9L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 
    100L, 90L, 81L, 76L, 71L, 68L, 9L, 9L, 0L, 0L, 0L, 0L, 0L, 
    93L, 81L, 79L, 76L, 74L, 65L, 5L, 5L, 1L, 4L, 0L, 103L, 97L, 
    81L, 78L, 63L, 55L, 0L, 2L, 0L, 97L, 76L, 64L, 60L, 53L, 
    42L, 0L, 104L, 91L, 70L, 66L, 53L, 0L, 111L, 96L, 93L, 0L, 
    0L, 0L, 93L, 0L, 0L, 0L, 0L, 0L), Endast.omregistrerade = c(1L, 
    0L, 1L, 1L, 2L, 6L, 6L, 3L, 5L, 4L, 3L, 1L, 2L, 0L, 0L, 0L, 
    1L, 1L, 4L, 3L, 2L, 9L, 5L, 2L, 1L, 0L, 1L, 0L, 1L, 2L, 1L, 
    1L, 2L, 5L, 7L, 2L, 2L, 1L, 1L, 1L, 1L, 4L, 3L, 2L, 0L, 3L, 
    3L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 2L, 3L, 0L, 0L, 0L, 1L, 0L, 
    2L, 0L, 1L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L), Tillkommande..byte = c(5L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 1L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 1L, 1L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 2L, 0L, 0L, 0L, 
    1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L), Tillkommande..senare.del = c(0L, 
    3L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 4L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 4L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), UppehÃ.ll = c(2L, 
    1L, 3L, 2L, 2L, 10L, 7L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 1L, 1L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    1L, 3L, 3L, 2L, 1L, 1L, 0L, 0L, 0L, 3L, 4L, 4L, 2L, 1L, 1L, 
    1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 3L, 2L, 1L, 
    1L, 1L, 3L, 3L, 2L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L), Avbrott = c(3L, 
    8L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 6L, 
    6L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 8L, 1L, 1L, 
    0L, 1L, 3L, 1L, 0L, 0L, 0L, 0L, 5L, 5L, 3L, 2L, 12L, 2L, 
    0L, 0L, 0L, 8L, 2L, 11L, 3L, 3L, 0L, 0L, 11L, 5L, 3L, 3L, 
    4L, 0L, 12L, 2L, 2L, 0L, 0L, 0L, 9L, 0L, 0L, 0L, 0L, 0L), 
    Bortfall = c(0L, 6L, 11L, 12L, 21L, 20L, 77L, 85L, 90L, 91L, 
    93L, 94L, 93L, 93L, 94L, 0L, 4L, 10L, 11L, 14L, 18L, 70L, 
    75L, 87L, 88L, 89L, 86L, 87L, 0L, 6L, 7L, 9L, 11L, 16L, 74L, 
    79L, 83L, 81L, 83L, 0L, 5L, 11L, 15L, 22L, 27L, 78L, 75L, 
    80L, 0L, 11L, 13L, 12L, 17L, 25L, 49L, 0L, 6L, 14L, 17L, 
    22L, 0L, 0L, 7L, 10L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), 
    AvgÃ.ende..byte = c(0L, 0L, 3L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 4L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 3L, 4L, 0L, 2L, 0L, 0L, 
    1L, 0L, 7L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), Avklarad = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 2L, 
    0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 
    17L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L), Examen = c(0, 0, 0, 0, 0, 17, 16, 
    9, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 11, 8, 3, 0, 0, 
    2, 0, 0, 0, 0, 0, 0, 18, 11, 14, 0, 6, 0, 0, 0, 0, 0, 0, 
    19, 10, 3, 2, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ADMISSIONROUND_ID = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
    4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 
    7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L), .Label = c("HT2012", 
    "HT2013", "HT2014", "HT2015", "HT2016", "HT2017", "HT2018", 
    "HT2019"), class = "factor"), startpop = c(107, 107, 107, 
    107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 103, 103, 
    103, 103, 103, 103, 103, 103, 103, 97, 97, 97, 97, 97, 97, 
    97, 104, 104, 104, 104, 104, 104, 111, 111, 111, 111, 111, 
    111, 93, 93, 93, 93, 93, 93), perc_left = c(1, 0.925233644859813, 
    0.785046728971963, 0.794392523364486, 0.682242990654206, 
    0.626168224299065, 0.102803738317757, 0.0841121495327103, 
    0.00934579439252336, 0.00934579439252336, 0, 0, 0, 0.00934579439252336, 
    0, 1, 0.9, 0.81, 0.76, 0.71, 0.68, 0.09, 0.09, 0, 0, 0, 0, 
    0, 1, 0.870967741935484, 0.849462365591398, 0.817204301075269, 
    0.795698924731183, 0.698924731182796, 0.0537634408602151, 
    0.0537634408602151, 0.010752688172043, 0.043010752688172, 
    0, 1, 0.941747572815534, 0.786407766990291, 0.757281553398058, 
    0.611650485436893, 0.533980582524272, 0, 0.0194174757281553, 
    0, 1, 0.783505154639175, 0.65979381443299, 0.618556701030928, 
    0.54639175257732, 0.43298969072165, 0, 1, 0.875, 0.673076923076923, 
    0.634615384615385, 0.509615384615385, 0, 1, 0.864864864864865, 
    0.837837837837838, 0, 0, 0, 1, 0, 0, 0, 0, 0), totexam = c(47, 
    47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 
    47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 49, 49, 49, 
    49, 49, 49, 49, 49, 49, 49, 49, 34, 34, 34, 34, 34, 34, 34, 
    34, 34, 17, 17, 17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -73L), groups = structure(list(
    ADMISSIONROUND_ID = structure(1:8, .Label = c("HT2012", "HT2013", 
    "HT2014", "HT2015", "HT2016", "HT2017", "HT2018", "HT2019"
    ), class = "factor"), .rows = list(1:15, 16:28, 29:39, 40:48, 
        49:55, 56:61, 62:67, 68:73)), row.names = c(NA, -8L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE))
r replace na
1个回答
-1
投票

不确定以下代码是否可以实现您的目标,但是您可以尝试一下

throughput <- within(throughput, perc_left <- ifelse(perc_left==0,NA,perc_left))
© www.soinside.com 2019 - 2024. All rights reserved.