需要对特定 R 代码片段的解释

Posted

技术标签:

【中文标题】需要对特定 R 代码片段的解释【英文标题】:Need an explanation for a particular R code snippet 【发布时间】: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 比我快!! 【参考方案1】:

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

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

【讨论】:

以上是关于需要对特定 R 代码片段的解释的主要内容,如果未能解决你的问题,请参考以下文章

append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]

有趣的 C++ 代码片段,有啥解释吗? [复制]

r R有用的代码片段

r R有用的代码片段

有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化