Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 打印所有时间:从00:00到23:59的分钟数_R_Design Patterns_Time_Count - Fatal编程技术网

R 打印所有时间:从00:00到23:59的分钟数

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可能会

我想打印一天中从00:00到23:59的所有小时:分钟

这一部分超出了问题的范围,但如果你想帮助我,这就是整个想法:

一旦这样做了,我想计算所有可以被解释为偶然的“好奇”时间。模式如:00:00、22:22、01:10、12:34、11:44等

稍后,我想计算所有的“意外发现”,并将它们除以总小时数,以了解一个人每次在智能手机上查看时间时发现“意外发现”的概率

老实说,我很迷路。已经有几个月没有编码了。对于问题的第一部分,我想循环可以完成任务。 对于第二部分,一个
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很高兴能提供帮助!如果您觉得投票按钮对您有用,请单击投票按钮旁边的复选标记,随时进行投票。:-)