我有一個由多個串列組成的串列,如下所示:
example_list <- list(c(1,2,3,4),c(1,0,0,0,1),matrix(1:12,3,4),matrix(1:12,4,3))
如何從example_list中隨機提取一個元素,并準確知道該元素的位置?例如,如果我選擇了 1,我怎么知道這個 1 是第二個串列的第一個元素而不是其他任何元素?回傳應該是子串列的順序,也是子串列中元素的順序。
請注意,所有子串列都是由數字組成的,而不是字串或字符。
我已經搜索過但仍然沒有找到合適的解決方案,有人可以幫助我嗎?真的很感激!
uj5u.com熱心網友回復:
我認為這就是你想要的:
set.seed(99)
sample_list <- function(x) {
i <- sample(length(x), 1)
list(i, x[[i]])
}
sample_list(example_list)
給出:
[[1]]
[1] 4
[[2]]
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
uj5u.com熱心網友回復:
我們可以命名list用的序列list和使用sample
names(example_list) <- seq_along(example_list)
example_list[sample(seq_along(example_list), 1)]
$`4`
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334579.html
標籤:r
下一篇:R中的標志條件如何運行回圈?
