【问题标题】:Need an explanation for a particular R code snippet需要对特定 R 代码片段的解释
【发布时间】:2015-06-18 17:28:09
【问题描述】:

以下是我需要解释的代码:

for (i in id) {
data <- read.csv(files[i] )

c <- complete.cases(data)
naRm <- data[c, ]
completeCases <- rbind(completeCases, c(i, nrow(naRm)))

据我了解,这里的变量 c 存储多个逻辑值。后面的那一行,对我来说似乎很陌生。 data[c, ] 是如何工作的? 仅供参考,我是 R 新手。

【问题讨论】:

  • 你永远不应该将变量命名为c,因为它也是this非常重要的函数的名称。
  • 您所说的那一行 (naRM
  • @MichaelKaiser 它是怎么做到的?我的意思是data[c, ] 是如何工作的?
  • c 拥有一个由TRUE/FALSE 值组成的向量。因此,使用 c 对数据行进行索引会提取 TRUE 值,指示行没有 NA 值。然后下一行只是用nrow 计算这些值。使用completeCases &lt;- c(completeCases, sum(complete.cases(data))) 可以更轻松地完成此操作
  • 是的,cr1msonB1ade 比我快!!

标签: r code-snippets explain


【解决方案1】:

complete.classes 查找所有“完整”的行,没有缺失值。这是man page。因此,completeCases 对象将告诉您刚刚读取的每个文件中“完整”行的数量。你真的不需要在 rbind 调用中存储 i 的值,因为它只是行号,所以它是多余的。对于此应用程序,向量就可以了。

您似乎还缺少一个右括号,或者这不是完整的代码块。

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多