使用for循环,我生成了标记为X_1,X_2,X_3等的矩阵列表。
我现在尝试在每个矩阵上运行一系列函数,并编写了另一个for循环:
for (i in matrices) {
df <- count(i)
df$count <- df$freq
df$freq <- df$count/nrow(i) #freq = pi in H1 equation
for (j in names){
assign(paste("hap",j,sep="."), df)
}
}
我尝试使用序列脚本生成矩阵列表:
matrices <- (paste("X",seq(1,nrow(windows)), sep="_"))
结果为:“ X_1”“ X_2”“ X_3”“ X_4”“ X_5”尽管这是一个列表,但它只是一个字符列表,实际上并没有引用矩阵。如果我手动输入矩阵名称列表,这似乎可以工作:
matrices <- list(X_1, X_2, X_3, X_4, X_5, ...)
但是我希望能够自动执行此操作,以便可以将脚本应用于大型数据集。如果我尝试将它们与
matrices <- list(paste("X",seq(1,nrow(windows)), sep="_"))
我得到与第一个脚本相同的东西:“ X_1”“ X_2”“ X_3”“ X_4”“ X_5”
有没有一种方法可以生成矩阵的顺序列表,以便可以在for循环中使用它们?
我也尝试过lapply,但是我不喜欢循环,因此我无法获得要在lapply中工作的功能。
我将在实际创建每个矩阵时将每个矩阵添加到列表中,例如
lst <- list(X_1, X_2, ..., X_N)
然后,当您要将函数应用于每个矩阵时,可以简单地使用lapply
,例如
result <- lapply(lst, function(x) fun(x))
其中fun()
将矩阵作为输入并对其进行处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句