gpt4 book ai didi

r - 将 for 循环的结果存储在对象或矩阵中

转载 作者:行者123 更新时间:2023-12-02 02:04:07 25 4
gpt4 key购买 nike

我有以下问题:

我使用 R 中的 for 循环从矩阵中获取特定数据。我的代码如下。

for(i in 1:100){
T <- as.Date(as.mondate (STARTLISTING)+i)
DELIST <- (subset(datensatz_Start_End.frame, TIME <= T))[,1]

write.table(DELIST, file = paste("tab", i, ".csv"), sep="," )
print(DELIST)
}

使用 print,R 传递数据。使用 write.table,R 将数据传送到不同的文件中。

我的目标是将 for 循环的结果汇总到一个矩阵 中。 ('i' 的每一行)

可惜我做不到。


抱歉,我是 R 中的真正菜鸟。

for(i in 1:100)
{
T <- as.Date(as.mondate (STARTLISTING)+i)
DELIST <- (subset(datensatz_Start_End.frame, TIME <= T))[,1]
assign(paste('b',i,sep=''),DELIST)

这会传送 100 个对象,其中包含我的结果。但我需要的是 一个 矩阵/数据框 有 100 列或 一个 列表。

有什么想法吗?


嘿!

因此我不允许编辑我自己的答案,这里是我的(简单)解决方案如下:

DELIST <- vector("list",100)
for(i in 1:100)

{
T <- as.Date(as.mondate (STARTLISTING)+i)
DELIST[[i]] <- as.character((subset(datensatz_Start_End.frame, TIME <= T))[,1])
}

DELIST[[99]] ## it is possible to requist the relevant companies for every 'i'

谢谢大家!

乔治

最佳答案

如果你想要一个列表,你可以使用 lapply 而不是循环

LL <- lapply(1:100, 
function(i) {
T <- as.Date(as.mondate (STARTLISTING)+i)
DELIST <- (subset(datensatz_Start_End.frame, TIME <= T))[,1]
assign(paste('b',i,sep=''),DELIST)
}
)

之后,您可以使用do.call将结果rbind

result <- do.call(rbind, LL)

或者如果您确信 LL 的所有元素的列都相同,那么您可以使用包 data.table 中的更高效的 rbindlist

result <- rbindlist(LL)

关于r - 将 for 循环的结果存储在对象或矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928840/

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