首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R程序设计-如何扫描字符

R程序设计-如何扫描字符
EN

Stack Overflow用户
提问于 2020-12-07 00:08:15
回答 1查看 43关注 0票数 0

我有一个数据集,数据集中在一个变量中:日期、日期、时间、位置。我需要将其更改为4个独立的变量(日期、日期、时间、地点):

数据(并不是所有的值都有相同的间距):

国际定位 接听详细信息:6.11/21 SAT 4:40-5:00@山景城@ Ranch 99 收件详情:4. 10/22清华4:40 - 5:00 @ San Mateo @ Marina 收件详情:5.10/09星期五5:30-5:50@库比蒂诺

dput:

日期日时间地点 11/21/2020星期六4:40-5:00山景@ Ranch 99 2020年10月22日清华4:40-5:00 San Mateo @ Marina 2010年9月10日星期五5:30-5:50库比蒂诺

EN

回答 1

Stack Overflow用户

发布于 2020-12-07 02:36:50

您可以使用tidyr的“提取”来指定要用于提取文本的正则表达式。

代码语言:javascript
复制
df1 <- tidyr::extract(df, Itemlocation, c('Date', 'Day', 'Time', 'Location'), 
  'Pickup Details:\\d+\\.\\s*(\\d+/\\d+)\\s*([A-Z]+)\\s*(\\d+:\\d+\\s*-\\s*\\d+:\\d+)\\s*@\\s*(.*)')
df1

#   Date Day        Time                  Location
#1 11/21 SAT 4:40 - 5:00 Mountain View  @ Ranch 99
#2 10/22 THU 4:40 - 5:00    San Mateo   @   Marina
#3 10/09 FRI 5:30 - 5:50                 Cupertino

数据

代码语言:javascript
复制
df<- structure(list(Itemlocation = c("Pickup Details:6. 11/21  SAT 4:40 - 5:00 @ Mountain View  @ Ranch 99", 
"Pickup Details:4.  10/22  THU 4:40 - 5:00 @ San Mateo   @   Marina", 
"Pickup Details:5. 10/09   FRI    5:30 - 5:50 @ Cupertino")), class = "data.frame", row.names = c(NA, -3L))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65174486

复制
相关文章

相似问题

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