【问题标题】:Filling in incomplete columns based on a column in R [closed]根据R中的列填充不完整的列[关闭]
【发布时间】:2020-11-23 21:02:02
【问题描述】:

我有这样的数据,其中第 84 行和第 79 行包含缺失值。

我希望它在第二列中显示 Matanuska-Susitna,在第三列中显示 Alaska,在第四列中显示 US。

这里有一些可重复的数据。

我尝试使用 R 上的 editdata 插件手动更改,并在 tidyverse 中分离函数,但我不断收到错误。

谢谢!

structure(list(FIPS = c(2122, 2130, 2150, 2158, 2164, 2170), 
    County = c("Kenai Peninsula -Alaska -US", "Ketchikan Gateway", 
    "Kodiak Island", "Kusilvak", "Lake and Peninsula", "Matanuska-Susitna -Alaska -US"
    ), State = c(NA, "Alaska", "Alaska", "Alaska", "Alaska", 
    NA), Country = c(NA, "US", "US", "US", "US", NA)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

【问题讨论】:

    标签: r tidyverse data-manipulation missing-data


    【解决方案1】:

    尝试以下任一选项(base Rfill() 来自 tidyr):

    #Code 1
    df$State[is.na(df$State)]<-'Alaska'
    df$Country[is.na(df$Country)]<-'US'
    #Code 2
    df <- df %>% tidyr::fill(c(State,Country),.direction = 'downup')
    

    两种情况下的输出都是:

    # A tibble: 6 x 4
       FIPS County                        State  Country
      <dbl> <chr>                         <chr>  <chr>  
    1  2122 Kenai Peninsula -Alaska -US   Alaska US     
    2  2130 Ketchikan Gateway             Alaska US     
    3  2150 Kodiak Island                 Alaska US     
    4  2158 Kusilvak                      Alaska US     
    5  2164 Lake and Peninsula            Alaska US     
    6  2170 Matanuska-Susitna -Alaska -US Alaska US  
    

    【讨论】:

    • 谢谢,数据实际上有不同的州和国家,所以第一个解决方案行不通。第二种解决方案在 90% 的时间内都有效,直到出现一次性状态,所以它填充了错误的状态,但我可以使用它。谢谢!
    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多