在R中的for循环内合并不起作用

在R中的for循环内合并不起作用,r,R,我有一个列表形式的时间序列数据,定义如下 [[1]][[1]] [1] “产品名称” [[1]][[2]] [1] 20031031“开始持续时间” [[1]][[3]] [1] 20160831“终止期限” [[1]][[4]] [1] 0.040816323 0.010141988 0.050318689 0.012804102 0.011378003 “一系列观察” 例如,我尝试使用以下命令合并两个系列:merge(as.zoo(TS1)、as.zoo(TS2)) 该功能在不在

我有一个列表形式的时间序列数据,定义如下

[[1]][[1]] [1] “产品名称”

[[1]][[2]] [1] 20031031“开始持续时间”

[[1]][[3]] [1] 20160831“终止期限”

[[1]][[4]] [1] 0.040816323 0.010141988 0.050318689 0.012804102 0.011378003 “一系列观察”

例如,我尝试使用以下命令合并两个系列:merge(as.zoo(TS1)、as.zoo(TS2))

该功能在不在循环内时工作正常,在for循环内使用时失真

startYear = as.numeric(substr(unlist(TimeSeries[[1]][2]),1,4))

startMonth = as.numeric(substr(unlist(TimeSeries[[1]][2]),5,6))

TS1 = ts(unlist(TimeSeries[[1]][4]), start = c(startYear,startMonth), 
frequency = 12)

TS2 = ts(unlist(TimeSeries[[2]][4]), start = c(startYear,startMonth), 
frequency = 12)

M <- merge(as.zoo(TS1), as.zoo(TS2))
startYear=as.numeric(substr(unlist(TimeSeries[[1]][2]),1,4))
startMonth=as.numeric(substr(unlist(TimeSeries[[1]][2]),5,6))
TS1=ts(未列出(时间序列[[1]][4]),start=c(开始日期,开始月份),
频率=12)
TS2=ts(未列出(时间序列[[2]][4]),start=c(开始时间、开始月份),
频率=12)

我认为合并很好

给定以下代码:

library("zoo")

a = as.zoo(ts(rnorm(5), start = 1981, freq = 12))

b = as.zoo(ts(rnorm(10), start = 1981, freq = 12))

merge(a,b)

for(I in 1:1){
    merge(a,b)
}
library("zoo")

a = as.zoo(ts(rnorm(5), start = 1981, freq = 12))

b = as.zoo(ts(rnorm(10), start = 1981, freq = 12))

new1 <- merge(a,b)

for(I in 1:1){
    new2 <- merge(a,b)
}

new1
new2
只有第一个
merge(a,b)
将打印到控制台——为了在for循环中打印到控制台,您需要显式调用
print

您可以通过执行以下命令看到这一点:

for (I in 1:1){
    1:10
}

这并不意味着循环中的代码不会被执行

请参阅以下代码的输出:

library("zoo")

a = as.zoo(ts(rnorm(5), start = 1981, freq = 12))

b = as.zoo(ts(rnorm(10), start = 1981, freq = 12))

merge(a,b)

for(I in 1:1){
    merge(a,b)
}
library("zoo")

a = as.zoo(ts(rnorm(5), start = 1981, freq = 12))

b = as.zoo(ts(rnorm(10), start = 1981, freq = 12))

new1 <- merge(a,b)

for(I in 1:1){
    new2 <- merge(a,b)
}

new1
new2

您需要向我们展示您的代码,然后发布您的代码,这样我们中的任何人都可以自己重新创建问题并找到解决方案。请尝试dput(),或查看此线程:@Edward,我已更新并编辑了我的问题,如果您需要更多详细信息,请告诉我
                  a          b
1981(1)   0.2137495 -0.4148458
1981(2)  -0.1298899 -0.4880588
1981(3)   0.2452036  0.1619693
1981(4)  -0.2251848  0.4866681
1981(5)   1.1049321  1.2171081
1981(6)          NA -0.5852703
1981(7)          NA  1.5238886
1981(8)          NA -0.7583958
1981(9)          NA -0.2972132
1981(10)         NA -0.4476471
                  a          b
1981(1)   0.2137495 -0.4148458
1981(2)  -0.1298899 -0.4880588
1981(3)   0.2452036  0.1619693
1981(4)  -0.2251848  0.4866681
1981(5)   1.1049321  1.2171081
1981(6)          NA -0.5852703
1981(7)          NA  1.5238886
1981(8)          NA -0.7583958
1981(9)          NA -0.2972132
1981(10)         NA -0.4476471