同じ理由で、車はロケットの上に乗るのに比べて遅いです。追加された使いやすさと安全性により、車はロケットよりもはるかに遅くなりますが、爆破される可能性は低く、車の始動、操縦、ブレーキングが簡単になります。ただし、適切な状況(たとえば、月に着く必要がある場合)では、ロケットはその作業に適したツールです。今、誰かがロケットを屋根に固定した車を発明したとしたら、私たちは何かを持っているでしょう。
何が行われているのかを確認することから始めてください。速度の違いがわかります(ちなみに、ベンチマークからすると、ミリ秒単位の速度ほど遅いとはdmy
言えません)。lubridate
dmy
#これをコマンドラインに入力すると、次のようになります。
>dmy
function (..., quiet = FALSE, tz = "UTC")
{
dates <- unlist(list(...))
parse_date(num_to_date(dates), make_format("dmy"), quiet = quiet,
tz = tz)
}
<environment: namespace:lubridate>
すぐに私は見parse_date
て、num_to_date
そしてmake_format
。これらすべての人が何であるか不思議に思う。どれどれ:
parse_date
> parse_date
function (x, formats, quiet = FALSE, seps = find_separator(x),
tz = "UTC")
{
fmt <- guess_format(head(x, 100), formats, seps, quiet)
parsed <- as.POSIXct(strptime(x, fmt, tz = tz))
if (length(x) > 2 & !quiet)
message("Using date format ", fmt, ".")
failed <- sum(is.na(parsed)) - sum(is.na(x))
if (failed > 0) {
message(failed, " failed to parse.")
}
parsed
}
<environment: namespace:lubridate>
num_to_date
> getAnywhere(num_to_date)
A single object matching ‘num_to_date’ was found
It was found in the following places
namespace:lubridate
with value
function (x)
{
if (is.numeric(x)) {
x <- as.character(x)
x <- paste(ifelse(nchar(x)%%2 == 1, "0", ""), x, sep = "")
}
x
}
<environment: namespace:lubridate>
make_format
> getAnywhere(make_format)
A single object matching ‘make_format’ was found
It was found in the following places
namespace:lubridate
with value
function (order)
{
order <- strsplit(order, "")[[1]]
formats <- list(d = "%d", m = c("%m", "%b"), y = c("%y",
"%Y"))[order]
grid <- expand.grid(formats, KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE)
lapply(1:nrow(grid), function(i) unname(unlist(grid[i, ])))
}
<environment: namespace:lubridate>
うわー、、、、などに加えてstrsplit-ting
、Whole Lotta Error Checking Going On(Zepの曲で再生)を取得しました。つまり、ここにあるのは、いくつかの優れたシンタックスシュガーです。うーん、おいしいですが、価格とスピードが付いています。expand-ing.grid-s
paste-ing
ifelse-ing
unname-ing
それを:と比較して as.POSIXct
ください
getAnywhere(as.POSIXct) #tells us to use methods to see the business
methods('as.POSIXct') #tells us all the business
as.POSIXct.date #what I believe your code is using (I don't use dates though)
内部コーディングがはるかに多く、エラーチェックが少なくなってas.POSIXct
いるので、使いやすさと安全性、または速度とパワーのどちらが必要かを尋ねる必要があります。仕事によって異なります。