我有一个数据集,数据集中在一个变量中:日期、日期、时间、位置。我需要将其更改为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库比蒂诺
发布于 2020-12-07 02:36:50
您可以使用tidyr的“提取”来指定要用于提取文本的正则表达式。
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数据
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))https://stackoverflow.com/questions/65174486
复制相似问题