r - 将for循环的结果放入R中的数据框中

标签 r statistics

我有一个函数将返回一个数字类对象,这是一个简化版本:

count.matches <- function(x) {
  ifelse(!is.na(a[,x] & a[,2]),1,0)
}

它只是生成一个由 0 和 1 组成的对象。 例如

count.matches(4)
[1] 0 0 0 0 1 1 0

我只想对此函数执行一个简单的 for 循环并将结果存储在数据框中,即每次函数循环创建一个列,但是我遇到了麻烦。

p <- data.frame()
my.matches <- for(i in 2:100) { 
  p[i,] <- count.matches(i)
 }

这不会产生任何结果。很抱歉,如果这是一个非常愚蠢的问题,但我已经尝试了很多方法,但似乎没有任何效果。如果您需要更多信息,请告诉我,我会提供。

最佳答案

for 不会返回循环中的最后一个值并合并结果。它返回NULL

使用for,您必须首先创建data.frame,并用结果填充它:

my.matches <- as.data.frame(matrix(0, nrow(a), ncol(a) - 1))
for (i in 2:100) {
  my.matches[,i] <- count.matches(i)
}

您也可以使用 foreach 包,它提供您期望从 for 获得的功能。

library(foreach)
my.matches <- foreach(i = 2:100, .combine=data.frame) %do% {
  count.matches(i)
}

关于r - 将for循环的结果放入R中的数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776430/

相关文章:

r - 多个同名列的统计信息

r - R中是否有像prop.test这样的用法进行2路比例比较?

从数据框中删除完全多重共线性变量

python - python statsmodels.tsa.seasonal 中的值错误

r - 如何在 RStudio 中 merge git 分支

r - 如何修剪数据框的开头

r - 在R中使用AUC包时出错

r - 如何在 R 中正确绘制 ICE?

r - 为什么我在 Julia 中使用 dropmissing 或 skipmissing 会得到不同的结果?

r - 无法在函数内对 ggplot 使用分面