r - 如何从单元格中提取一些数据?
问题描述
我想提取单元格中的数字信息。我的数据看起来像这样。
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
有人知道如何提取数字吗?首先十分感谢
解决方案
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 日创建
希望这可以帮助。
推荐阅读
- python - 遍历文本行以比较列并将新结果应用于 Python 中的新列
- python - 当我想为列表创建另一个副本而不为 python 中的 Integer 创建另一个副本时,为什么我必须仅对 List 使用 .copy?
- javascript - 如何忽略无效的 URL 参数?
- jwt - 为什么要发送 JWT 令牌标头
- python - Indexing or sorting dataframe using list
- unit-testing - Powermockito.whenNew 不创建模拟
- javascript - 如何以纵横比显示图像?
- visual-studio - 如何防止 Visual Studio 在搜索结果中用文件替换打开的文件
- python - 基于 csv 问题的 Python 发送多封电子邮件
- javascript - 如何在NodeJS中访问方括号内的数据