Rad*_*ish 5 format datetime r datetime-format
我是R.的新手.我在工作中使用Windows PC,在家中使用Ubuntu Linux.我试图找出为什么我的代码在Windows R中不起作用.我试图找到给定日期的一周(数字).使用格式,format(Sys.time(), "%u")
它适用于Linux而不是Windows?我错过了什么,我从两台PC上添加了一个简单的代码和会话信息.
我的Windows 7 PC输出R 3.01
sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
format(Sys.time(), "%u")
[1] ""
Sys.time()
[1] "2013-09-22 10:34:00 CDT"
Run Code Online (Sandbox Code Playgroud)
我的LINUX PC输出R 3.01
sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached)
[1] tools_3.0.1
format(Sys.time(),"%u")
[1] "7"
Sys.time()
[1] "2013-09-22 10:34:15 CDT"
Run Code Online (Sandbox Code Playgroud)
这是R(在Windows上)记录的行为.
有关详细信息,请参阅?strptime(我知道,可能不是您可能想到的第一个地方;-)其中记录了R中可用的日期 - 时间转换规范.在详细信息下,所有操作系统上的规范的初始列表后面跟着一个部分这是:
在当前标准中也定义但实施较少(例如,不适用于Windows上的输出)
'%C'世纪(00-99):年份的整数部分除以100.
[...许多剪断的线条..]
'%u'工作日为十进制数(1-7,星期一为1).
[...更多剪断的线条..]
最接近的替代品format是:
%w工作日为十进制数(0-6,星期日为0).
%a当前语言环境中的缩写工作日名称.(在输入时也匹配全名.)
%A当前语言环境中的完整工作日名称.(也匹配输入上的缩写名称.)
您可以检查ISOweekday()包中的功能ISOweek:
"此函数根据ISO 8601返回给定日期的工作日.它可以替代Windows上未实现的"%u"格式."
ISOweekday("2013-09-24 01:42:23")
# [1] 2
Run Code Online (Sandbox Code Playgroud)