0
我試圖在R中編寫一個函數,給定n
帕斯卡三角形的第(如圖所示)行,它返回第n+1
行(在相同的形成)。P的帕斯卡三角函數的輸出中的神祕0
我已經寫了下面的功能和測試它n = 4
:
> pascal.tri <- function(n) {
+ l <- length(n)
+ for (i in 1:(l + 1)) {
+ new.vec[i] <- choose(l, (i - 1))
+ }
+ n[[l+1]] <- new.vec
+ return(n)
+ }
> n <- list(c(1), c(1, 1), c(1, 2, 1), c(1, 3, 3, 1))
> pascal.tri(n)
[[1]]
[1] 1
[[2]]
[1] 1 1
[[3]]
[1] 1 2 1
[[4]]
[1] 1 3 3 1
[[5]]
[1] 1 4 6 4 1 0
但我不斷收到該隨機0附加到new.vec
(因此在列表中)。我一直一行一行地閱讀,使它在各處編輯,並且它不會消失。
我不知道是什麼原因造成這個,所以任何幫助,將不勝感激。
嗯。出於某種原因,我沒有得到那個錯誤。但是,在函數中初始化new.vec確實也解決了我的問題。那謝謝啦! – thisisourconcerndude
@thisisourconcerndude可能是因爲在全局環境中已經有一個名爲'new.vec'的變量。因此,當'pascal.tri'在函數範圍內找不到該變量時,它會在全局環境中搜索並找到它,因此不會出現錯誤。 – useR