【问题标题】:Handling/Extracting NULL values that are available in other columns / fields处理/提取其他列/字段中可用的 NULL 值
【发布时间】:2021-12-24 19:32:10
【问题描述】:

我在 2 列距离和度量中有缺失值,但缺失的信息在不同的列中可用。我想提取值并使用 R 将它们粘贴到 NA 行中。

以下是当前数据形状和要求的示例:

当前:

Case Distance Metric
*jsalidjsalj; 10 KM daskdsadok; 73 saujdhuj NA NA
*dskfnsldfn sadjidisaj 500 - 550 M wqldl NA NA

要求:

Case Distance Metric
*jsalidjsalj; 10 KM daskdsadok; 73 saujdhuj 10 KM
*dskfnsldfn sadjidisaj 500 - 550 M wqldl 500 M

【问题讨论】:

    标签: r text null dataset


    【解决方案1】:
    library(tidyverse)
    data <- tribble(
      ~Case, ~Distance, ~Metric,
      "*jsalidjsalj; 10 KM daskdsadok; 73 saujdhuj", NA, NA,
      "*dskfnsldfn sadjidisaj 500 - 550 M wqldl", NA, NA
    )
    data
    #> # A tibble: 2 x 3
    #>   Case                                        Distance Metric
    #>   <chr>                                       <lgl>    <lgl> 
    #> 1 *jsalidjsalj; 10 KM daskdsadok; 73 saujdhuj NA       NA    
    #> 2 *dskfnsldfn sadjidisaj 500 - 550 M wqldl    NA       NA
    
    to_numeric <- . %>%
      str_extract("[0-9]+") %>%
      as.numeric()
    
    data %>%
      mutate(
        Distance = ifelse(is.na(Distance), str_extract(Case, "[0-9 -]+ K?M") %>% to_numeric(), Distance),
        Metric = ifelse(is.na(Metric), str_extract(Case, "K?M"), Metric)
      )
    #> # A tibble: 2 x 3
    #>   Case                                        Distance Metric
    #>   <chr>                                          <dbl> <chr> 
    #> 1 *jsalidjsalj; 10 KM daskdsadok; 73 saujdhuj       10 KM    
    #> 2 *dskfnsldfn sadjidisaj 500 - 550 M wqldl         500 M
    

    reprex package (v2.0.1) 于 2021 年 11 月 12 日创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多