R 试图理解列表的输出
我想知道是否有人能帮助我理解这个函数的输出。我知道它应该返回长度为2的运行位置,但我不确定如何解释输出R 试图理解列表的输出,r,R,我想知道是否有人能帮助我理解这个函数的输出。我知道它应该返回长度为2的运行位置,但我不确定如何解释输出 fun1 = function(M,k) { n = nrow(M) m = ncol(M) runs = vector('list',length=m) for(i in 1:m) { for(j in 1:(n-k+1)) { if(all(M[j:(j+k-1),i]==1)) runs[[i]] = c(runs[[i]]
fun1 = function(M,k) {
n = nrow(M)
m = ncol(M)
runs = vector('list',length=m)
for(i in 1:m) {
for(j in 1:(n-k+1)) {
if(all(M[j:(j+k-1),i]==1)) runs[[i]] = c(runs[[i]],j)
}
}
return(runs)
}
set.seed(123)
M = matrix(sample(0:1,size=15,replace=TRUE),ncol=3,nrow=5)
fun1(M,2)
输出:
[[1]]
[1] 4
[[2]]
[1] 2 3
[[3]]
[1] 3
列表中的每个元素都是一列的输出,从最左边的列开始。数字列表或NULL(如果没有)提供该列中的行号,其中一行中有两个1 要解释示例输出,请执行以下操作: -在最左边的第一列中,有两个1从第4行开始,M[4,1]和M[5,1]都是1 -在第二列中,有两个1从第2行开始,表示第2行和第3行是1,在第3行也表示第3行和第4行是1 -在第三行中,有两个1从第3行开始 如果你打印我们的矩阵M,你可以检查这是真的,给定你的种子看起来像这样
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 1 1 0
[3,] 0 1 1
[4,] 1 1 1
[5,] 1 0 0
我希望这能说明问题
顺便说一句,在将来,尝试使用适当的缩进和换行来更好地格式化代码。我不得不手动添加换行符以使示例代码正常工作,但给出一个种子做得很好:哦,不,很抱歉格式化了。但是非常感谢你的回答。现在我觉得这很有道理: