【问题标题】:How to merge and unmerge a character vector?如何合并和取消合并字符向量?
【发布时间】:2016-01-17 00:54:43
【问题描述】:
我需要通过一系列计算来跟踪我的数据。
我有以下向量:
start_date <- "2010-11-04"
end_date <- "2010-11-10"
我希望将它们合并成一个像这样的单个字符向量
"2010-11-04 to 2010-11-10"
然后我想要相反的:
从:"2010-11-04 to 2010-11-10"回到原来的两个向量
【问题讨论】:
标签:
r
indexing
merge
character
【解决方案1】:
这不使用任何包:
p <- paste(start_date, "to", end_date)
p
## [1] "2010-11-04 to 2010-11-10"
从另一个方向删除第一个空格之后的所有内容以获得代表第一个日期的字符串,并删除最后一个空格之前的所有内容以获得代表第二个日期的字符串:
sub(" .*", "", p)
## [1] "2010-11-04"
sub(".* ", "", p)
## [1] "2010-11-10"
另一种方法是使用strsplit分割字符串:
s <- unlist(strsplit(p, " to "))
s
## [1] "2010-11-04" "2010-11-10"
所以 s[1] 是表示第一个日期的字符串,s[2] 是表示第二个日期的字符串。
更新:根据 Richard Scriven 的评论进行了修改。