簡體   English   中英

高效地基於R中的另一個列表創建列表

[英]efficient create a list based on another list in R

盡管我知道如何在Python和Java中執行此操作,但並不熟悉如何在R中實現此功能。尤其是我知道R在循環中非常慢,並且動態增長列表很慢。

假設我有一個vector(list)a <-c(1,3,4),我想擁有一個由以下規則的元素組成的列表b,來自a的任何元素k包括3*k-2:3*k列表中的3*k-2:3*k b。

e.g,   
1 =>  1,2,3
3 =>  7,8,9
4 =>  10,11,12
so b <- c(1,2,3,7,8,9,10,11,12)

現在更普遍的是,如果我有一個rule(function)f(k),如何將返回值附加到新列表中?

謝謝

您想要類似的東西:

> unlist(lapply(c(1,3,4), function(k) (3*k-2):(3*k)))
[1]  1  2  3  7  8  9 10 11 12

但是,我沒有按照您的要求提供更通用的解決方案。

這是多樣化的另一種方式。

as.vector(mapply(`:`, 3*a-2, 3*a))
# [1]  1  2  3  7  8  9 10 11 12

暫無
暫無

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

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