簡體   English   中英

如何在R中擴展函數以在不同數據集上並行運行?

[英]How can I extend a function in R to run parallely on different datasets?

我做了一個函數find.string() ,它接受一個字符串並在其中輸出不同的模式。

例如:find.string(“ abcabcabc”)-“ abc”

現在,我想做的是,我有兩個包含多個字符向量行的大型數據集(就像上面提到的那樣)。 現在,我想同時在兩個函數上運行此函數。 數據集的形式為:

1 2 "abcabcabc"
2 3 "adcadcadc"
3 4 "yufyufyuf"
4 5 "xyzxyzxyz"
..............

同樣,前兩列相同,只有第三列發生變化,

1 2 "fbfbfbfbfb"
2 3 "bbfbfbfbbf"
3 4 "fbffffbfbf"
4 5 "fbfbbbbbbb"
...............

因此,基本上,在合並這兩個數據集時,我將擁有

1 2 "abcabcabc" "fbfbfbfbfb"
2 3 "adcadcadc" "bbfbfbfbbf"
3 4 "yufyufyuf" "fbffffbfbf"
4 5 "xyzxyzxyz" "fbfbbbbbbb"
...........................

現在,我想在第三和第二個字符向量上並行運行該函數並存儲輸出。 我如何在R中做到這一點?

也許data.table方法比嘗試並行化代碼更快,但是我需要您的數據樣本以確保此答案解決了您的問題

library(data.table)

cols <- c("colstring1", "colstring2")

setDT(data)[, (cols) := lapply (cols, function(x)  find.string(x) )]

暫無
暫無

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

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