【问题标题】:R code for system.time() user time extraction用于 system.time() 用户时间提取的 R 代码
【发布时间】:2023-03-09 21:38:01
【问题描述】:

我需要为数字 1:N 的阶乘函数运行 system.time 循环,并将结果存储为具有 2 列编号和用户时间的数据帧,以便使用递归和循环监控阶乘函数实现的性能。 我能够在使用 for 循环时运行 system.time(),但不能只提取 user.self 的值。

例如

i<-system.time(fact(1000))

这给了我输出的东西

   user  system elapsed 
   0.006   0.000   0.006 

但是,我只想提取数值 0.006 并将其作为列值放入我的数据框中,并带有相应的数字 N(在本例中为 1000)。

进一步提取会为我提供用户数据以及字符串“user.self”,但我只想要 0.006。

> i[1]
user.self 
    0.006 

数据框最终将如下所示

   N      recursiveTime  loopTime
1  1000   0.06            0.003
2  1100   0.06            0.004    
3  1200   0.07            0.004

【问题讨论】:

  • 什么是loopTime 列?
  • 需要使用 1.recursion 和 2.For 循环来实现阶乘函数。第一列“recursiveTime”将存储使用递归计算阶乘时从 system.time() 提取的用户时间,第二列“loopTime”将存储使用 for 循环计算阶乘时从 system.time() 提取的用户时间。

标签: r


【解决方案1】:

试试双括号。

i[["elapsed"]]

或者

i[["user.self"]]如果这是你想要的,你想要哪一个?

或者,从值中去掉名称:

avalue<-i[i]#your example with the name attached
names(avalue)=NULL; #now avalue is just a number again.

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 2011-08-07
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2010-10-24
    • 2018-08-16
    相关资源
    最近更新 更多