【发布时间】:2017-10-06 14:17:15
【问题描述】:
我正在寻找一种在日期的day and month 表示中删除(如果存在)0 的方法。另外,我有字符的格式...
这是我想要的可重现示例:
df <-
data.frame(
exemple = c(
"01/12/2017",
"01-02-2017",
"2017/02/12",
"2017/02/01",
"2017/02/01 10:01:05",
"2017/02/01 02:01:05"
),
format = c(
"%d/%m/%Y" ,
"%d-%m-%Y" ,
"%Y/%d/%m" ,
"%Y/%d/%m" ,
"%Y/%d/%m %H:%m:%s" ,
"%Y/%d/%m %H:%m:%s"
),
result = c(
"1/12/2017",
"1-2-2017" ,
"2017/2/12" ,
"2017/2/1" ,
"2017/2/1 10:01:05" ,
"2017/2/1 02:01:05"
)
)
哪个给:
exemple format result
1 01/12/2017 %d/%m/%Y 1/12/2017
2 01-02-2017 %d-%m-%Y 1-2-2017
3 2017/02/12 %Y/%d/%m 2017/2/12
4 2017/02/01 %Y/%d/%m 2017/2/1
5 2017/02/01 10:01:05 %Y/%d/%m %H:%m:%s 2017/2/1 10:01:05
6 2017/02/01 02:01:05 %Y/%d/%m %H:%m:%s 2017/2/1 02:01:05
它包含以下列:
- 示例:我的日期
- 格式:每个日期的格式
- 结果:我想要什么。
如您所见,每个日期都有不同的格式,因此我正在寻找最通用的方法。 最通用的意思是它应该适用于任何类型的分隔符和任何日期格式
编辑:
请注意,我注意到变量的内容与格式化的输出混淆了:我想将字符转换为它自己。
谢谢。
【问题讨论】:
-
您将变量的内容与格式化输出混淆了。您在这里想要的只是字符的自定义转换。基础价值永远不会改变。
-
我不这么认为...我的变量示例和格式都是字符。我想删除示例列中的 0。
-
那更“糟糕”,因为你不能对字符做任何事情。在某些时候,您希望它们被解析。而且,很抱歉打扰您,删除零会使这更难。此外,特别是在
data.frame中,您可以保留Date(即已解析)和您想要的任何漂亮打印版本。 -
我想针对特定用途这样做。不用担心,即使 0 被丢弃,因为格式 R 仍然能够解析它们。
-
在我看来就像三个快速的
gsubs:将"/0"替换为"/",将"-0"替换为"-",将"^0"替换为""。如果您有任何情况下时间出现在字符串的开头,因为您希望在时间部分保留 0,这将失败,但这可以通过查看您的格式列来解决。