【发布时间】: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