這是一個奇怪的問題。我試圖用矢量化代碼而不是循環做更多的事情。我知道我可以用循環做到這一點,我正在尋找的是R中速度向量化的方式。我有一個表創造性地命名tbl
看起來像這樣:R基於行元素的計算重複行
A ,B ,C ,D
1 ,1 ,10 ,22
2 ,2 ,12 ,32
3 ,5 ,44 ,37
我想重複C和d的值,A和B之間的值的數量在這種情況下,將是第一個實例行,第二行的一個實例和第三行的三個重複。我們的目標是:
C ,D
10 ,22
12 ,32
44 ,37
44 ,37
44 ,37
我到目前爲止是這樣的,但它不工作:
rep(list(tbl[,c("C","D")]), (tbl["B"] - tbl["A"] + 1))
它的工作原理,如果我遍歷行,但我寧願做一個合格作爲矢量化函數。我有一種感覺,list(tbl[,c("C","D")])
是絆倒的部分,因爲它不知道它正在處理哪一行。任何幫助或指導表示讚賞。如果我要掉下錯誤的兔子洞,請隨時告訴我。謝謝!
任何機會,這可以用來返回一個列表,而不是一個data.frame的? –
@MatthewCrews,那會是什麼樣子? ('data.frame's的'list')?在完成之後,也許看看使用'split'吧? – A5C1D2H2I1M1N2O1R2T1
這將是一個列表清單。這個特定的用例需要列表的列表。分裂工作! –