对于R中的循环,all in 1命令

对于R中的循环,all in 1命令,r,R,我创建了这个随机时间序列: MM=1584 Z0<-rnorm(MM,8,1.0)#;ts.plot(Z0) s_1=1.50; p_1=121; p_2=240 s_2=1.25; p_3=361; p_4=480 s_3=1.10; p_5=601; p_6=720 s_4=1.50; p_7=960; p_8=1020 s_5=1.25; p_9=1140; p_10=1320 s_6=1.50; p_11=1369; p_12=1440 a=(Z0[1:p_1-1]) b=(

我创建了这个随机时间序列:

MM=1584
Z0<-rnorm(MM,8,1.0)#;ts.plot(Z0) 

s_1=1.50; p_1=121; p_2=240
s_2=1.25; p_3=361; p_4=480
s_3=1.10; p_5=601; p_6=720
s_4=1.50; p_7=960; p_8=1020
s_5=1.25; p_9=1140; p_10=1320
s_6=1.50; p_11=1369; p_12=1440

a=(Z0[1:p_1-1])
b=(s_1+Z0[p_1:p_2])
c=(Z0[(p_2+1):(p_3-1)])
d=(s_2+Z0[p_3:p_4])
e=(Z0[(p_4+1):(p_5-1)])
f=(s_2+Z0[p_5:p_6])
g=(Z0[(p_6+1):(p_7-1)])
h=(s_3+Z0[p_7:p_8])
i=(Z0[(p_8+1):(p_9-1)])
l=(s_4+Z0[p_9:p_10])
m=(Z0[(p_10+1):(p_11-1)])
n=(s_5+Z0[p_11:p_12])
o=Z0[(p_12+1):MM]


Z=c(a,b,c,d,e,f,g,h,i,l,m,n,o);ts.plot(Z)
abline(v=p_1,col="red");abline(v=p_2,col="red");abline(v=p_3,col="red")
abline(v=p_4,col="red");abline(v=p_5,col="red");abline(v=p_6,col="red")
abline(v=p_7,col="red");abline(v=p_8,col="red");abline(v=p_9,col="red")
abline(v=p_10,col="red");abline(v=p_11,col="red");abline(v=p_12,col="red")

Zm=as.data.frame(Z)
write.csv2(Zm, file="C:/Users/Luca/Dekstop/Zm/Zm1.csv")
MM=1584

Z0我不知道为什么要更改数据帧的名称,但是动态更改文件的名称很简单

for (i in 1:100) { ... write.csv2(Zm, file=paste("C:/Users/Luca/Dekstop/Zm/Zm", i, ".csv", sep = "")) }

如果您想保留创建的数据帧,为什么不简单地使用一个列表?

只需将当前迭代的索引添加到名称中?您是否希望创建一个以输出名称为参数的函数?我希望重复创建Z0(Z01,Z02,Z03…Z0100)100次,然后是Z(Z1,Z2,…Z100)那么Zm(Zm1,Zm2,Zm3…Zm100)使用新的名称文件(文件夹/Zm1、Zm2、Zm3等)将它们安全地保存在文件夹中,所有这些文件都在一个comand中,并带有一个循环。这不是对您的问题的直接回答,但使用rep.int以及调整可以在不适用的地方视为零的事实,我们可以将Z的生成重构为
rnorm(1584,8,1.0)+rep.int(c(0,1.5,0,1.25,0,1.25,0,1.1,0,1.5,0,1.25,0),c(120,120,120,120,120,120,120,239,61,119,181,48,72,144))
;复制/粘贴错误的可能性稍小。tho_mi,您的comand非常完美,但我如何将循环应用于所有命令?从Z0到Zm。因为我必须创建100个不同的随机序列。您希望如何处理这些数据帧?