겉으로보기에는 초보적인 질문이지만 몇 가지 옵션을 검색하여 시도했지만 출력이 나타나지 않습니다.다른 길이의 루프 출력 반복 및 저장
필자는 다음과 같은 결과 (아래 dput)의 열을 가지고 있으며 끝까지 끝까지 모든 요소로 시작하는 루프에서 이들을 합성합니다. 출력을 "results"에 저장하고 싶습니다. 미리 초기화했습니다. 아래에서 볼 수 있듯이 결과에 결과를 표시하는 여러 방법을 시도했지만 어느 것도 성공하지 못했습니다. 그러나 print (temp)를 사용하면 원하는대로 계산이 진행되는 것을 볼 수 있습니다.
각 반복마다 다른 길이의 답을 얻을 수 있으며 각각의 행이 고유 한 행에 있어야합니다 (벡터에서 NA를 추가로 만들었습니다). 현재 방법 사용 : results = resultstemp는 첫 번째 반복을 제외한 모든 것에 대한 "추가"열이 결과 시작 부분의 반복으로 채워지기 때문에 성공하지 못합니다. 예를 들어, 두 번째 행부터 마지막 행까지는 동일한 두 숫자가 있습니다 (단 두 개의 리턴 값을 합한 전체 결과)는 전체 행에서 12 회 반복됩니다.
#results=NULL
results=matrix(data=NA,nrow=nrow(returns),ncol=nrow(returns))
for (i in 1:nrow(returns)) {
temp=cumprod(1+returns[i:nrow(returns),]/100)-1
#resultstemp=append(results,temp)
#resultstemp[i,]=temp
resultstemp=rbind(results,temp)
#print(resultstemp)
print(temp)
results=resultstemp
#resultstemp[i,]=temp
#results[i,]=resultstemp
#results[i]=resultstemp[i]
#results[i]=temp[i]
}
반환 값 : 내가 제대로 이해하면, 당신은 첫 번째 열은 단지 첫 번째 백분율 낮은 삼각 행렬, 뭔가를 원하는
structure(list(`runif(24, 0, 10)` = c(7.60884596500546, 4.31712970370427,
1.7181678651832, 4.86275367671624, 8.06177110411227, 8.07952171890065,
7.45263583026826, 9.86292108893394, 4.06634262995794, 2.36454397207126,
9.12716506049037, 3.72667369898409, 1.2204843852669, 7.80610600719228,
0.640116988215595, 6.94793848553672, 1.73743493855, 2.57189674302936,
4.7653386532329, 1.79362375289202, 7.56623527035117, 2.70907687023282,
4.45359382545575, 5.50409059040248)), .Names = "runif(24, 0, 10)", row.names = c(NA,
-24L), class = "data.frame")
동일한 질문을 두 번 묻는 이유는 무엇입니까? 이전 질문과의 차이점은 무엇입니까? – agstudy
차이점은 내가 특별히 for 루프에 대한 반복 출력을 저장하는 데 문제가 있다는 것입니다. –
출력에 'list'를 사용하지 않는 이유는'res <- lapply (seq_len (nrow (returns)), function i) cumprod (1 + return [i : nrow (returns),]/100) -1)' –