0
我試圖更好地理解索引/子集的行爲。使用數字在R中設置矢量
考慮數字矢量x
:
x <- c(1.0, 2.0)
我可以在自己的價值觀得到:
x[1L] # the first element of a 1-indexed vector
#> [1] 1
x[2L] # the second element of a 1-indexed vector
#> [1] 2
x[3L] # the third element, which is not defined/ does not exists, so returns `NA`; ok.
#> [1] NA
但我通過這些回報很困惑:
x[1.1]
#> [1] 1
x[2.7]
#> [1] 2
x[3.1]
#> [1] NA
而且似乎這不像我所期望的那樣工作:
x[2.6] <- 3.0
x
#> [1] 1 3
有人能幫我理解這是爲什麼嗎?
該索引被製成一個整數。因此,索引變成'as'integer(2.7)'這是'2' –
有趣。你知道爲什麼決定發佈指數嗎?如果輸入非整數數字索引,則返回錯誤似乎是健康的。 – CarlAH
我真的不知道他們爲什麼這樣寫,而且我也不知道'as.integer()'是否被實現,因爲'['是一個原始函數,所以它直接到C代碼。我所知道的是,它就是這樣運作的,它就是這樣。 ;) –