R 打印所有时间:从00:00到23:59的分钟数
我想打印一天中从00:00到23:59的所有小时:分钟 这一部分超出了问题的范围,但如果你想帮助我,这就是整个想法: 一旦这样做了,我想计算所有可以被解释为偶然的“好奇”时间。模式如:00:00、22:22、01:10、12:34、11:44等 稍后,我想计算所有的“意外发现”,并将它们除以总小时数,以了解一个人每次在智能手机上查看时间时发现“意外发现”的概率 老实说,我很迷路。已经有几个月没有编码了。对于问题的第一部分,我想循环可以完成任务。 对于第二部分,一个R 打印所有时间:从00:00到23:59的分钟数,r,design-patterns,time,count,R,Design Patterns,Time,Count,我想打印一天中从00:00到23:59的所有小时:分钟 这一部分超出了问题的范围,但如果你想帮助我,这就是整个想法: 一旦这样做了,我想计算所有可以被解释为偶然的“好奇”时间。模式如:00:00、22:22、01:10、12:34、11:44等 稍后,我想计算所有的“意外发现”,并将它们除以总小时数,以了解一个人每次在智能手机上查看时间时发现“意外发现”的概率 老实说,我很迷路。已经有几个月没有编码了。对于问题的第一部分,我想循环可以完成任务。 对于第二部分,一个ifconditional可能会
if
conditional可能会成功
对于问题的第一部分,我尝试过这样的循环
for(i in x){
for(k in y){
cat(i,":",k, ",")
}
}
第二种情况是
假设时间的数字是ab:cd
if(a==b & a==c & a==d){
print(ab:cd)
TRUE
}
if(a==b & c==d){
print(ab:cd)
TRUE
}
我想先得到完整的数字列表。然后,列出“意外发现”,最后计算两者的百分比。
我发现人们在看时间时是如何发现数字模式的,我想知道从24*60=1440
我希望我已经解释清楚了。(我过去擅长编码和数学,但几个月后,我几乎忘记了一切)。这里有一种方法可以生成所有可能时间的列表
h <- seq(from=0, to=23)
m <- seq(from=0, to=59)
h <- sprintf('%02d', h)
m <- sprintf('%02d', m)
df <- data.frame(expand.grid(h, m))
df$times <- paste0(df$Var1, ':', df$Var2)
df <- df[order(df$times), ]
df$times
变量长度
dim(df)
[1] 1440 3
下面是一种生成所有可能时间列表的方法
h <- seq(from=0, to=23)
m <- seq(from=0, to=59)
h <- sprintf('%02d', h)
m <- sprintf('%02d', m)
df <- data.frame(expand.grid(h, m))
df$times <- paste0(df$Var1, ':', df$Var2)
df <- df[order(df$times), ]
df$times
变量长度
dim(df)
[1] 1440 3
我们可以创建一个从
00:00:00
到23:59:00
的1分钟间隔序列,然后使用格式
获得所需格式的输出
format(seq(as.POSIXct("00:00:00", format = "%T"),
as.POSIXct("23:59:00", format = "%T"), by = "1 min"), "%H:%M")
#[1] "00:00" "00:01" "00:02" "00:03" "00:04" "00:05" "00:06" "00:07" "00:08" "00:09"
# "00:10" "00:11" "00:12" "00:13" "00:14" "00:15" "00:16" "00:17" "00:18" "00:19" ...
我们可以创建一个从
00:00:00
到23:59:00
的1分钟间隔序列,然后使用格式
获得所需格式的输出
format(seq(as.POSIXct("00:00:00", format = "%T"),
as.POSIXct("23:59:00", format = "%T"), by = "1 min"), "%H:%M")
#[1] "00:00" "00:01" "00:02" "00:03" "00:04" "00:05" "00:06" "00:07" "00:08" "00:09"
# "00:10" "00:11" "00:12" "00:13" "00:14" "00:15" "00:16" "00:17" "00:18" "00:19" ...
还有另一种方法:
> result <- character(1440)
> for (i in 0:1439) result[i+1L] <- sprintf("%02d:%02d",
+ i %/% 60,
+ i %% 60
+ )
> head(result)
[1] "00:00" "00:01" "00:02" "00:03" "00:04" "00:05"
> tail(result)
[1] "23:54" "23:55" "23:56" "23:57" "23:58" "23:59"
>(0:1439中的i)结果[i+1L]头的结果(结果)
[1] "00:00" "00:01" "00:02" "00:03" "00:04" "00:05"
>尾部(结果)
[1] "23:54" "23:55" "23:56" "23:57" "23:58" "23:59"
还有另一种方法:
> result <- character(1440)
> for (i in 0:1439) result[i+1L] <- sprintf("%02d:%02d",
+ i %/% 60,
+ i %% 60
+ )
> head(result)
[1] "00:00" "00:01" "00:02" "00:03" "00:04" "00:05"
> tail(result)
[1] "23:54" "23:55" "23:56" "23:57" "23:58" "23:59"
>(0:1439中的i)结果[i+1L]头的结果(结果)
[1] "00:00" "00:01" "00:02" "00:03" "00:04" "00:05"
>尾部(结果)
[1] "23:54" "23:55" "23:56" "23:57" "23:58" "23:59"
(+1)您可以通过在seq
周围省略c()
来缩短代码(它们不是必需的);您可以通过反向扩展“网格”来避免重新排序,即先m
然后h
。最后,可以将sprintf
和paste
命令折叠为单个sprintf
调用。要创建一个简单的HH:MM字符串向量,一个单行程序应该是,带有(setNames(expand.grid(m,h),c(“m”,“h”)),sprintf(“%02i:%02i”,h,m))
。这是一个更优雅的解决方案!(+1)通过省略seq
周围的c()
(它们不是必需的),您可以使代码更短;您可以通过反向扩展“网格”来避免重新排序,即先m
然后h
。最后,可以将sprintf
和paste
命令折叠为单个sprintf
调用。要创建一个简单的HH:MM字符串向量,一个单行程序应该是,带有(setNames(expand.grid(m,h),c(“m”,“h”)),sprintf(“%02i:%02i”,h,m))
。这是一个更优雅的解决方案!非常感谢,事实上,这段代码似乎真的很容易应用=)@CarlosAlcala很高兴能提供帮助!如果您觉得投票按钮对您有用,请单击投票按钮旁边的复选标记,随时进行投票。:-)非常感谢,事实上,这段代码似乎真的很容易应用=)@CarlosAlcala很高兴能提供帮助!如果您觉得投票按钮对您有用,请单击投票按钮旁边的复选标记,随时进行投票。:-)