gpt4 book ai didi

r - 通过应用避免循环 - 值得麻烦吗?

转载 作者:行者123 更新时间:2023-12-04 10:11:57 26 4
gpt4 key购买 nike

我写了一个 Rscript 来以所需的格式带来一些数据。特别是我只想重新排列数据集,最终以 8 行 12 列的格式(96 孔板格式)提供它。我嵌套了两个 for 循环,效果很好:

element1 = seq(1,96,1)
element2 = seq(0.5,48,0.5)
df = data.frame(element1,element2)
storage = data.frame(matrix(NA,nrow = 8, ncol = 12))
container = vector("list",ncol(df))

for (n in 1:ncol(df)){
j = 0
for (i in seq(1,length(df[,n]),12)) {
j = j+1
storage[j,] = df[(i):(i+11),n]
}
container[[n]]=storage

}

评论:
我将数据打包在一个列表中,以便在 .xls 中导出
而且我知道这是一个非常简单的方法......但它有效

然而,我愿意学习:-),因为我读了很多书,应该避免使用 for 循环,而是将“apply”与函数结合使用。我试图通过使用应用和函数来解决这个任务。但是我无法得到结果,函数的使用和 apply 对我来说似乎要复杂得多。那么避免for循环总是值得的吗?如果是,你会怎么做?

谢谢,基督徒

最佳答案

您似乎只是将每一列 reshape 为矩阵。刚刚怎么样

container <- lapply(df, matrix, byrow=T, ncol=12)

如果你真的需要一个data.frame,试试
container <- lapply(df, function(x) data.frame(matrix(x, byrow=T, ncol=12)))

关于r - 通过应用避免循环 - 值得麻烦吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27642106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com