首页 > 解决方案 > 如何从单元格中提取一些数据?

问题描述

我想提取单元格中的数字信息。我的数据看起来像这样。

      item       stock
PRE 24DX4SX15G    200      
PLS 12RX10SX15G   200
ADU 24PX200ML     200
NIS 18PX40SX11G   200
REF 500GX12D      200

我想提取除字母 D、R 和 P 之外的数字。我想用这个数字与股票做乘法运算。比如像这样。

          item       stock    pcs    total
    PRE 24DX4SX15G    200      24    4800
    PLS 12RX10SX15G   200      12    2400 
    ADU 24PX200ML     200      24    4800
    NIS 18PX40SX11G   200      18    3600
    REF 500GX12D      200      12    2400

有人知道如何提取数字吗?首先十分感谢

标签: rextract

解决方案


library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(stringr)

dataset <- read.table(text = '      item       stock
PRE 24DX4SX15G    200      
PLS 12RX10SX15G   200
ADU 24PX200ML     200
NIS 18PX40SX11G   200
REF 500GX12D      200',
                      header = TRUE)

dataset %>%
  mutate(pcs = as.numeric(x = str_sub(string = str_extract(string = item,
                                                           pattern = "\\d+[DRP]"),
                                      start = 1,
                                      end = -2)),
         total = (stock * pcs))
#>          item stock pcs total
#> 1  24DX4SX15G   200  24  4800
#> 2 12RX10SX15G   200  12  2400
#> 3   24PX200ML   200  24  4800
#> 4 18PX40SX11G   200  18  3600
#> 5    500GX12D   200  12  2400

reprex 包(v0.3.0)于 2019 年 7 月 12 日创建

希望这可以帮助。


推荐阅读