【问题标题】:R separating out number and units from a column in a dataframeR从数据框中的列中分离出数字和单位
【发布时间】:2014-05-28 11:24:01
【问题描述】:

我有一个数据框,其中包含一个包含数字和变量单位的列:

 num <- c(1:5)
 val <- c("5%","10K", "100.2mv","1.4g","1.007kbars")

 df <- data.frame(num,val)
 df

如何从 df$val 创建两个新列,一个只包含数字,一个包含单位?

感谢您的帮助。

【问题讨论】:

  • 使用正则表达式。

标签: regex r


【解决方案1】:

这是使用stringr的解决方案:

library(stringr)
df$extr_nums <- str_extract(val, "\\d+\\.?\\d*")
df$extr_units <- str_replace(val, nums, "")
df
  num        val extr_nums extr_units
1   1         5%         5          %
2   2        10K        10          K
3   3    100.2mv     100.2         mv
4   4       1.4g       1.4          g
5   5 1.007kbars     1.007      kbars

正则表达式翻译为:“至少1位数字,后跟可选点,后跟可选数字”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 2021-08-09
    • 2020-10-29
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多