-2
請看下面的代碼中的R把打印在重複中的R
i=1
a1=function(x){
print(i)
i=i+1
return(x^2)}
a2=replicate(5,a1(2))
我希望有一個輸出1 2 3 4 5
誰能幫助我?但是我不想寫for-loops。我希望保持原樣的複製功能。感謝您的建議/幫助。
請看下面的代碼中的R把打印在重複中的R
i=1
a1=function(x){
print(i)
i=i+1
return(x^2)}
a2=replicate(5,a1(2))
我希望有一個輸出1 2 3 4 5
誰能幫助我?但是我不想寫for-loops。我希望保持原樣的複製功能。感謝您的建議/幫助。
您可以通過全局變量賦值做到這一點:
i=1
a1=function(x){
print(i)
i<<-i+1
return(x^2)}
a2=replicate(5,a1(2))
# [1] 1
# [1] 2
# [1] 3
# [1] 4
# [1] 5
這是不是真的,你應該如何把它。
取決於你真正努力去做,這樣可以工作:
res <- sapply(1:5, print)
你不能改變的價值'i'一個函數內。你想做什麼?只需打印一系列數字? – Psidom
是的,我希望有一個計數。請理解,這是一個MWE – Sayan
事情是有很多方法可以做到這一點,但可能不會用'replicate'。 'for'循環,'apply'系列或'遞歸'函數都可以完成任務,但最終可能並不是你想要的。 – Psidom