0

我正在为 uni 写一份年度报告,其中我想详细说明我对 R 的使用在过去一年中是如何增加的。我正在寻找可以用来描述我对 R 的使用情况的指标。一些可能的指标来描述使用情况:

  • 历史代码行数
  • 错误数
  • 使用程序花费的时间
  • 特定函数被调用的次数
  • 制作的地块数

所以我的问题是:我可以从 R 中提取上述任何内容,还是可以提取任何其他可以证明我使用 R 的指标?

4

2 回答 2

3

首先,我不确定这个问题是否适合 Stack Overflow。其次,我认为您确定的指标并不适合。让我们看看您目前入围的那些:

  • 历史代码行数

    您对代码进行了很多调整。它们积累在你的历史中。你的历史现在有很多行代码。这是否积极反映了您对 R 的使用?或者,您喜欢在 R 中编写如下代码:

    temp <- 0
    for (i in 1:10) {
      temp <- temp + i
    }
    print(temp)
    

    而熟悉 R 的人只会写sum(1:10). 一条线对五条线。我们真的可以说行数是一个很好的指标吗?

  • 错误数

    也许这有一些优点。但是你会以某种方式对错误进行分类吗?遗失或错位的括号是否可以原谅?如果没有发出错误或警告,但 R 的行为方式可能出乎您的意料,从而导致意外结果(例如,假设numeric(0)factor(0)行为方式相同) ,该怎么办?请参阅此处了解一些 R 陷阱,其中一些不会提供任何错误指示,但肯定会导致错误分析。他们将如何使用该指标进行分析?

  • 使用该程序的小时数

    再次,值得商榷。你如何衡量小时数?花时间编码?计算机花在处理代码上的时间?你花了时间弄清楚如何编程你的问题?

  • 特定函数被调用的次数

    我根本不明白这个指标。vapply是否更晦涩的功能会获得更高的权重(例如,如果您是使用其他 schmucks的人中的一员,您是否会因为使用更安全(有时更快)而sapply获得奖励积分?)vapply

  • 制作的地块数

    对不起,但同样,我根本不理解这个指标。首先,并非所有地块都是平等创建的!数据可视化领域有几个人觉得很多软件破坏了数据可视化,因为某些软件(特别是一个非常流行的电子表格程序)使人们可以轻松快速地制作花哨的图表。使用 R,默认情况下它们不那么花哨,但这本身并不能使它变得更好。因此,如果您只是在没有其他质量评估标准的情况下测量生成的地块数量,那么我不确定这个指标有什么用处。

而且,从您的评论到您的问题:

  • 实际上......堆栈溢出声誉点可能和任何东西一样好!

    嗯...我真正使用R 的唯一一次是回答有关 Stack Overflow 的问题(不幸的是,这是真的)。同时,我在这里几乎所有的声望点都来自我在 R 标签中回答的问题。当然,这里有一些用户我真的很信任,但有时,我什至不信任自己,所以我不知道这是否是你使用 R 的一个很好的指标。

    许多用户还抱怨 Stack Overflow 投票完全古怪,所以我不确定您是否真的可以使用“声誉”作为衡量技能的有效标准。例如,这里的普通用户一直在讨论,“简单”问题的答案很快就会被投票(因为它们很容易验证,通常甚至不需要运行代码),而“复杂”问题的答案不会产生投票与回答问题所付出的努力成正比。恰当的例子:为什么我有一个“大师”徽章来回答本质上是一个重新排序的数据版本,在谷歌上只需两分钟就可以轻松获得。我对这个答案并不特别自豪,而且它当然没有说明我对 R 的“使用”。


现在,为了使它有资格作为一个答案,而不仅仅是对您的问题本身的扩展评论,我认为最有效但不确定如何衡量它的最重要的事情就是的活跃程度R社区。有很多方法可以参与 R,从编写或贡献包、提交错误报告、举办研讨会以帮助其他人切换到 R,等等。

我并不是建议你需要像这里的其他几位人那样写一本书,或者成为一个拥有下划线追随者崇拜的传奇包开发人员,但你可以采取一些小步骤。例如,虽然我是一名写作老师,但我为学生举办了研讨会并写了一些“入门技巧”,只是为了向他们介绍使用 R,因此他们可以考虑将它添加到他们的工具包中。这里的许多其他用户定期发布关于他们使用 R 的经验的博客,而且,由于这是社区的一部分,他们在此过程中学到了很多东西。

最后,还有几个想法:

  • @PaulHiemstra 在他的评论中建议您可以“提及您在 R 中所做的编程工作的百分比”。我会将这个概念扩展如下:(1)尝试衡量您的整体工作有多少是在 R 和与 R 互补的工具中完成的(比如 Sweave/knitr/LaTeX 等显而易见的工具),以及(2)尝试衡量使用R 对提高你的整体技能有多大影响(逻辑是好的编程通常伴随着逻辑思维、仔细的组织、良好的文档等等)。

  • 与上一点相关,试着看看你对 R 的使用是如何随时间变化的。您的行为是否已从手动重做相同的步骤变为编写函数?然后,您是否回过头来调整这些功能,以便更广泛地使用它们,而不是解决在给定时间点遇到的特定问题?这些都是非常重要的变化,特别是如果你从头开始使用该语言,它们可能比你在问题中提出的想法更有意义。

因此,总而言之,您在问题中确定的许多容易量化的事情可能会导致非常无意义的分析。我觉得你所做的定性投入会更有价值。

于 2013-04-18T13:10:49.670 回答
2

另一个指标:获取一个旧的和复杂的(不知道有没有)代码并从 0 开始重做。使用计算时间的差异作为指标。

于 2013-04-18T13:15:38.360 回答