[英]Is it impossible to install R 4.0 on Ubuntu 18.04.4 LTS because r-base-core requires a libc6 version >= 2.29?
[英]R 3.6.1 on Ubuntu 18.04.4 LTS - Accessing indexes out of defined length of a vector
我在 R 中有一個向量,比如x
包含元素 1 到 20。
> x <- c(1:20)
為什么以下命令的 output 在兩種情況下向量的索引都超出定義的范圍時會有所不同?
> x[0]
integer(0)
> x[5000]
[1] NA
我正在使用具有以下配置的機器。
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
R version 3.6.1 (2019-07-05)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: Ubuntu 18.04.4 LTS
R 為 1 索引。
用 0 索引意味着“不要 select 任何東西”。
因此,您會得到一個結果,告訴您它是一個大小為 0 的 integer 數組
您可能認為這是無用的,但在線性索引上下文中使用時更有意義:
> x <- 1:10
> r <- as.integer( runif( 10, min = 0, max = 10 ) )
> r
[1] 8 6 7 6 3 0 9 0 8 6
> x[r]
[1] 8 6 7 6 3 9 8 6
結果的長度為 8,因為 0 索引操作已被忽略。
關於 NA,請考慮:
> y <- 1
> y[5] <- 5
> y
[1] 1 NA NA NA 5
換句話說,如果您沒有明確定義元素,則它們被假定為 NA(即“未定義”)。 但是您仍然可以訪問它們,甚至可以分配給以前未定義的索引。
同樣,如果您使用 NA 作為線性索引的一部分,您將得到 NA ,如果您的索引列表是從其他進程生成的,並且您在該列表中丟失了一些數據,那么這很有意義。
> x <- 1:10
> x[ c(1, 2, NA, 3, 4, NA, 5, 6) ]
[1] 1 2 NA 3 4 NA 5 6
一個奇怪的行為是,如果您嘗試單獨使用 NA 進行索引,則會得到一個充滿 NA 的數組。 例如檢查一下:
> Robin <- 1:8
> cat( Robin[NA], 'Batman', sep="\n" )
NA
NA
NA
NA
NA
NA
NA
NA
Batman
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.