簡體   English   中英

如何在向量列表上應用索引向量?

[英]How do I apply an index vector over a list of vectors?

我想將長索引向量(50+個非順序整數)應用於向量的長列表(50個包含100+個名稱的字符向量),以便檢索特定值(作為列表,向量或數據幀)。

下面是一個簡化的示例:

> my.list <- list(c("a","b","c"),c("d","e","f"))
> my.index <- 2:3

期望的輸出

[[1]]
[1] "b"
[[2]]
[1] "f"
##or
[1] "b"
[1] "f"
##or
[1] "b" "f"

我知道我可以使用以下方法從每個元素中獲得相同的值:

> lapply(my.list, function(x) x[2])
##or
> lapply(my.list,'[', 2)

我可以通過以下方法從每個元素中提取第二個和第三個值:

> lapply(my.list,'[', my.index)
[[1]]
[1] "b" "c"

[[2]]
[1] "e" "f"

##or
> for(j in my.index) for(i in seq_along(my.list)) print(my.list[[i]][[j]])
[1] "b"
[1] "e"
[1] "c"
[1] "f"

我不知道如何從每個元素中僅提取一個值。

我已經找了幾天,還沒有找到完成此操作的任何示例,但這似乎很簡單。 我在這里錯過明顯的東西嗎?

謝謝你,斯科特

每當遇到類似lapply但涉及多個並行列表/向量的問題時,請考慮使用MapmapplyMap只是對mapply SIMPLIFY=FALSE硬編碼的mapply的包裝)。

嘗試這個:

Map("[",my.list,my.index)
#[[1]]
#[1] "b"
#
#[[2]]
#[1] "f"

..要么:

mapply("[",my.list,my.index)
#[1] "b" "f"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM