【问题标题】:create new variable using part of another variable string使用另一个变量字符串的一部分创建新变量
【发布时间】:2022-11-24 07:30:03
【问题描述】:

我正在处理一个超过 1000 行的数据框,我想根据另一个变量字符串的一部分创建一个新变量。

这是数据的简短版本,但我想从“id”变量中提取数字并创建“height”变量。数据框应该如下所示:

df<-data.frame(id=c("Necrosis_Char_cat_0.05m","Necrosis_Char_cat_0.1m",
                "Necrosis_Char_cat_1.7m"), 
           height=c(0.05, 0.1, 1.7))

我尝试使用此代码:

 df_new <- df%>% 
   mutate(height = as.numeric(str_replace(.id, ".*(\\d)(\\d+)m.*", "\\1.\\2")))

但是我收到以下警告消息:

In eval(cols[[col]], .data, parent.frame()) : NAs introduced by coercion

除了 NA 之外,一些值如 0.05 显示为 0.5。我相信问题可能是我在 str_replace() 中编写模式和/或替换的方式。非常感谢任何帮助。谢谢你。

【问题讨论】:

    标签: r


    【解决方案1】:
    library(dplyr)
    library(readr)
    df %>% 
      mutate(height2 = parse_number(id))
    

    【讨论】:

      【解决方案2】:
      df %>%
         mutate(new_height = parse_number(id))
                             id height new_height
      1 Necrosis_Char_cat_0.05m   0.05       0.05
      2  Necrosis_Char_cat_0.1m   0.10       0.10
      3  Necrosis_Char_cat_1.7m   1.70       1.70
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多