首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个新的字符列,从r中的dataframe中删除另一列中的文本

如何创建一个新的字符列,从r中的dataframe中删除另一列中的文本
EN

Stack Overflow用户
提问于 2022-02-05 22:39:48
回答 2查看 80关注 0票数 0

我在R中有以下数据帧

代码语言:javascript
复制
East    24  Consumer    7/18/2018 0:00  Second Class    Pennsylvania    Chairs  USD71.37
East    29  Consumer    9/21/2016 0:00  Standard Class  Pennsylvania    Binders USD9.61
East    33  Consumer    9/21/2016 0:00  Standard Class  Pennsylvania    Binders USD6.85
East    199 Corporate   7/13/2018 0:00  Standard Class  Pennsylvania    Binders USD2.94
East    216 Corporate   1/9/2016 0:00   Standard Class  Ohio    Machines    USD1188
East    222 Consumer    12/27/2016 0:00 First Class Ohio    Binders USD24
East    224 Consumer    12/27/2016 0:00 First Class Ohio    Machines    USD252
East    331 Consumer    9/1/2017 0:00   First Class Pennsylvania    Binders USD28
East    333 Consumer    4/29/2017 0:00  Second Class    Pennsylvania    Binders USD40
East    334 Consumer    4/29/2017 0:00  Second Class    Pennsylvania    Binders USD8

最后一栏是销售,这是一个字符-我的问题是,我想创建一个新的列与销售号码,只有这些数字-请帮助,如果可以!

EN

回答 2

Stack Overflow用户

发布于 2022-02-05 22:44:43

我们可以使用来自parse_number包的readr函数:

在这里,V10是您的最后一个列名:

代码语言:javascript
复制
library(dplyr)
library(readr)

df %>% 
  mutate(newCol = parse_number(V10))
代码语言:javascript
复制
     V1  V2        V3         V4   V5       V6    V7           V8       V9      V10  newCol
1  East  24  Consumer  7/18/2018 0:00   Second Class Pennsylvania   Chairs USD71.37   71.37
2  East  29  Consumer  9/21/2016 0:00 Standard Class Pennsylvania  Binders  USD9.61    9.61
3  East  33  Consumer  9/21/2016 0:00 Standard Class Pennsylvania  Binders  USD6.85    6.85
4  East 199 Corporate  7/13/2018 0:00 Standard Class Pennsylvania  Binders  USD2.94    2.94
5  East 216 Corporate   1/9/2016 0:00 Standard Class         Ohio Machines  USD1188 1188.00
6  East 222  Consumer 12/27/2016 0:00    First Class         Ohio  Binders    USD24   24.00
7  East 224  Consumer 12/27/2016 0:00    First Class         Ohio Machines   USD252  252.00
8  East 331  Consumer   9/1/2017 0:00    First Class Pennsylvania  Binders    USD28   28.00
9  East 333  Consumer  4/29/2017 0:00   Second Class Pennsylvania  Binders    USD40   40.00
10 East 334  Consumer  4/29/2017 0:00   Second Class Pennsylvania  Binders     USD8    8.00
票数 0
EN

Stack Overflow用户

发布于 2022-02-05 22:46:08

如果该列被称为"a",则可以将字符串子设置,然后转换为数字,如下所示:

代码语言:javascript
复制
> a <- c("USD71.37","USD9.61")
> 
> as.numeric(str_sub(a,4,-1))
[1] 71.37  9.61
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71002781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档