2017-06-29 43 views
-1

檢索變量我有一個看起來像這樣的列表:R-編程 - 在列表

x=list(a=a,b=b,b1=b1,b2=b2,b3=b3,...,bn=bn,c=c) 

我想通過調用X $億檢索所有國陣的,但我在這裏的問題是,我不知道什麼是n(n在不同變量之間變化)。有人可以給我一兩個關於如何解決這個問題的提示嗎?

+1

也許''grepl'可以提供幫助。你可以給一個[可重現的例子](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –

回答

2

您可以使用names(x)來獲取一個字符數組,然後在這裏輸入最大的「bn」。通過像你n=12

n = 12 

x <- list(a = "a", c = "c") 
for (i in 1:n) 
    x[paste0("b", i)] <- i 

上面提到現在我們可以使用substr找到所有以"b"

nms <- names(x) 
nms 
# [1] "a" "c" "b1" "b2" "b3" "b4" "b5" "b6" "b7" "b8" "b9" "b10" 
# [13] "b11" "b12" 
nms <- nms[substr(nms, 1, 1) == "b"] 
nms 
# [1] "b1" "b2" "b3" "b4" "b5" "b6" "b7" "b8" "b9" "b10" "b11" "b12" 

開始從這個矢量變量名創建列表

讓我們開始,我們現在可以拿最後一個條目並打電話清單

nam <- nms[length(nms)] 
nam 
# "b12" 

bn <- x[nam] 
bn 
# 12