我是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"
我的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"
答案 0 :(得分:7)
这是R(在Windows上)记录的行为。
有关详细信息,请参阅?strptime
(我知道,可能不是您可能会想到的第一个地方;-),其中记录了R中可用的日期 - 时间转换规范。详细信息 ,在所有操作系统上找到的初始规范列表后面跟着一个部分:
也在当前标准中定义,但实施较少 (例如,不适用于Windows上的输出)
'%C'世纪(00-99):年份的整数部分除以100。
[。 。 。许多剪断的线条。 。 ]
'%u'工作日为十进制数字(1-7,星期一为1)。
[。 。 。更多剪断的线条。 。 ]
format
中最接近的替代品是:
%w工作日为十进制数(0-6,星期日为0)。
%a当前语言环境中缩写的工作日名称。 (也匹配完整 输入名称。)
%当前区域设置中的完整工作日名称。 (也匹配缩写 输入名称。)
答案 1 :(得分:5)
您可以查看包ISOweekday()
中的ISOweek
功能:
“此函数根据ISO 8601返回给定日期的工作日。它可替代Windows上未实现的”%u“格式。”
ISOweekday("2013-09-24 01:42:23")
# [1] 2