我有一个.csv数据集,它具有以下日期格式:
01/10/2013
但是有些事件具有以下格式:
13-14/10/2013
有谁知道如何格式化这个以便在“%d /%m /%Y”中找到一些东西?
答案 0 :(得分:1)
这取决于。如果你想要10月14日,你需要
gsub("[[:digit:]]{1,2}-", "", "13-14/10/2013")
如果你想要10月13日,你需要
gsub("-[[:digit:]]{1,2}", "", "13-14/10/2013")
答案 1 :(得分:1)
如果您想保留两个日期,即 <div class="table">
<div class="row">
<div class="cell">Cell 1, Row 1</div>
<div class="cell">Cell 2, Row 1</div>
<div class="cell">Cell 3, Row 1</div>
</div>
<div class="row">
<div class="cell">Cell 1, Row 2</div>
<div class="cell">Cell 2, Row 2</div>
<div class="cell">Cell 3, Row 2</div>
</div>
<div class="row">
<div class="cell">Cell 1, Row 3</div>
<div class="cell">Cell 2, Row 3</div>
<div class="cell">Cell 3, Row 3</div>
</div>
</div>
变为13-14/10/2013
,您可以使用c("13/10/2013", "14/10/2013")
和tidyr
分隔日期,那么几天,然后将所有东西重新组合在一起:
dplyr
答案 2 :(得分:0)
如果您的数据是这样的:
d <- c("01/10/2013", "10/01/2015", "13-14/10/2013")
然后,您可以使用正则表达式捕获错误模式,然后在整个向量上调用gsub()
以使用第一天(xx-yy
)替换前导xx
:
gsub("^(\\d{2})\\-(\\d{2})/(\\d{2})/(\\d{4})$", "\\1/\\3/\\4", d)
或第二天(yy
):
gsub("^(\\d{2})\\-(\\d{2})/(\\d{2})/(\\d{4})$", "\\2/\\3/\\4", d)
取决于哪种情况适合您的情况。