![](/img/trans.png)
[英]R, putting a for loop result into a vector and adding this vector to a data frame
[英]Putting Results of for loop into a data frame in R
我有一個將返回數字類對象的函數,這是一個簡化的版本:
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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.