欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言中for循環(huán)的并行處理方式

 更新時間:2021年04月21日 11:11:08   作者:SANGF  
這篇文章主要介紹了R語言中for循環(huán)的并行處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前言

本文用于記錄筆者在將R語言中的for語句并行化處理中的一些問題。

實驗

這里使用foreach和doParallel包提供的函數(shù)實現(xiàn)for語句的并行處理。

for語句腳本

func <- function(x, y, z) {
  return(x^y/z)
}
# >>> main <<<
x <- 2
y <- 3
z <- 1:100000
start <- (proc.time())[3][[1]]
a <- 0
for (i_z in z) {
  a <- a + func(x, y, i_z)
}
end <- (proc.time())[3][[1]]
print(paste('Result = ', round(a, 2), ', time = ', (end-start), 's', sep=''))

輸出:

[1] "Result = 96.72, time = 0.177s"

并行化版本

library(foreach)
library(doParallel)
func <- function(x, y, z) {
  return(x^y/z)
}
# >>> main <<<
x <- 2
y <- 3
z <- 1:100000
start <- (proc.time())[3][[1]]
cl <- makeCluster(12)
registerDoParallel(cl)
a <- foreach(z=z, .combine='rbind') %dopar% func(x, y, z)
a <- sum(a)
stopCluster(cl)
end <- (proc.time())[3][[1]]
print(paste('Result = ', round(a, 2), ', time = ', (end-start), 's', sep=''))

輸出:

[1] "Result = 96.72, time = 37.988s"

總結

1、這里發(fā)現(xiàn)并行化所用時間大于非并行化所用過的時間,是因為需要執(zhí)行的操作(func函數(shù))過于簡單,而foreach處理時會有額外的資源消耗。此時foreach額外消耗的資源遠大于需要執(zhí)行的操作所需的資源,因此會導致并行化后反而使用的時間增加了。所以對于一些復雜的操作比較適合使用并行化的策略。

2、foreach函數(shù)的.packages參數(shù)可以為并行化函數(shù)傳遞額外需要的包。

3、foreach中的參數(shù)為需要在func中循環(huán)的變量,其他固定的變量則在func中傳入。參數(shù)可以是data.frame類型。

補充:R語言--for循環(huán)語句的使用

R語言for循壞語句的使用(多個for)

對于多個for循還語句,R語言的執(zhí)行順序(以3個for為例):從外向內(nèi)單個執(zhí)行,里邊循還完整,再往外一層,直到全部完成。話不多說,上例子:

代碼:

library(data.table)
mm<-data.table()
m<-c(1,2,3,4,5)
n<-c('a','b','c','d','e')
o<-c(6,7,8,9,10)
for (i1 in m){
  for ( i2 in n){
     for (i3 in o){
       print(c(i1,i2,i3))
       aa<-data.table(i1,i2,i3)
       bb<-rbind(mm,aa)
       
     }
  }
}

執(zhí)行結果:

[1] "1" "a" "6"
[1] "1" "a" "7"
[1] "1" "a" "8"
[1] "1" "a" "9"
[1] "1"  "a"  "10"
[1] "1" "b" "6"
[1] "1" "b" "7"
[1] "1" "b" "8"
[1] "1" "b" "9"
[1] "1"  "b"  "10"
[1] "1" "c" "6"
[1] "1" "c" "7"
[1] "1" "c" "8"
[1] "1" "c" "9"
[1] "1"  "c"  "10"
[1] "1" "d" "6"
[1] "1" "d" "7"
[1] "1" "d" "8"
[1] "1" "d" "9"
[1] "1"  "d"  "10"
[1] "1" "e" "6"
[1] "1" "e" "7"
[1] "1" "e" "8"
[1] "1" "e" "9"
[1] "1"  "e"  "10"
[1] "2" "a" "6"
[1] "2" "a" "7"
[1] "2" "a" "8"
[1] "2" "a" "9"
[1] "2"  "a"  "10"
[1] "2" "b" "6"
[1] "2" "b" "7"
[1] "2" "b" "8"
[1] "2" "b" "9"
[1] "2"  "b"  "10"
[1] "2" "c" "6"
[1] "2" "c" "7"
[1] "2" "c" "8"
[1] "2" "c" "9"
[1] "2"  "c"  "10"
[1] "2" "d" "6"
[1] "2" "d" "7"
[1] "2" "d" "8"
[1] "2" "d" "9"
[1] "2"  "d"  "10"
[1] "2" "e" "6"
[1] "2" "e" "7"
[1] "2" "e" "8"
[1] "2" "e" "9"
[1] "2"  "e"  "10"
[1] "3" "a" "6"
[1] "3" "a" "7"
[1] "3" "a" "8"
[1] "3" "a" "9"
[1] "3"  "a"  "10"
[1] "3" "b" "6"
[1] "3" "b" "7"
[1] "3" "b" "8"
[1] "3" "b" "9"
[1] "3"  "b"  "10"
[1] "3" "c" "6"
[1] "3" "c" "7"
[1] "3" "c" "8"
[1] "3" "c" "9"
[1] "3"  "c"  "10"
[1] "3" "d" "6"
[1] "3" "d" "7"
[1] "3" "d" "8"
[1] "3" "d" "9"
[1] "3"  "d"  "10"
[1] "3" "e" "6"
[1] "3" "e" "7"
[1] "3" "e" "8"
[1] "3" "e" "9"
[1] "3"  "e"  "10"
[1] "4" "a" "6"
[1] "4" "a" "7"
[1] "4" "a" "8"
[1] "4" "a" "9"
[1] "4"  "a"  "10"
[1] "4" "b" "6"
[1] "4" "b" "7"
[1] "4" "b" "8"
[1] "4" "b" "9"
[1] "4"  "b"  "10"
[1] "4" "c" "6"
[1] "4" "c" "7"
[1] "4" "c" "8"
[1] "4" "c" "9"
[1] "4"  "c"  "10"
[1] "4" "d" "6"
[1] "4" "d" "7"
[1] "4" "d" "8"
[1] "4" "d" "9"
[1] "4"  "d"  "10"
[1] "4" "e" "6"
[1] "4" "e" "7"
[1] "4" "e" "8"
[1] "4" "e" "9"
[1] "4"  "e"  "10"
[1] "5" "a" "6"
[1] "5" "a" "7"
[1] "5" "a" "8"
[1] "5" "a" "9"
[1] "5"  "a"  "10"
[1] "5" "b" "6"
[1] "5" "b" "7"
[1] "5" "b" "8"
[1] "5" "b" "9"
[1] "5"  "b"  "10"
[1] "5" "c" "6"
[1] "5" "c" "7"
[1] "5" "c" "8"
[1] "5" "c" "9"
[1] "5"  "c"  "10"
[1] "5" "d" "6"
[1] "5" "d" "7"
[1] "5" "d" "8"
[1] "5" "d" "9"
[1] "5"  "d"  "10"
[1] "5" "e" "6"
[1] "5" "e" "7"
[1] "5" "e" "8"
[1] "5" "e" "9"
[1] "5"  "e"  "10"

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • R語言關聯(lián)規(guī)則深入詳解

    R語言關聯(lián)規(guī)則深入詳解

    這篇文章主要介紹了R語言關聯(lián)規(guī)則深入詳解,文中內(nèi)容講解的很透徹,有感興趣的同學可以學習下
    2021-03-03
  • R語言apply系列函數(shù)實例詳解

    R語言apply系列函數(shù)實例詳解

    apply()函數(shù)是一種很強大的機制,下面這篇文章主要給大家介紹了關于R語言apply系列函數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • R語言數(shù)據(jù)框中的負索引介紹

    R語言數(shù)據(jù)框中的負索引介紹

    這篇文章主要介紹了R語言數(shù)據(jù)框中的負索引介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言實現(xiàn)PCA主成分分析圖的示例代碼

    R語言實現(xiàn)PCA主成分分析圖的示例代碼

    主成分分析(Principal?Component?Analysis,PCA)是一種無監(jiān)督的數(shù)據(jù)降維方法,通過主成分分析可以盡可能保留下具備區(qū)分性的低維數(shù)據(jù)特征。本文將用R語言實現(xiàn)PCA主成分分析圖,需要的可以參考一下
    2022-04-04
  • R語言繪制頻率直方圖的案例

    R語言繪制頻率直方圖的案例

    這篇文章主要介紹了R語言繪制頻率直方圖的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言科學計數(shù)法介紹:digits和scipen設置方式

    R語言科學計數(shù)法介紹:digits和scipen設置方式

    這篇文章主要介紹了R語言科學計數(shù)法介紹:digits和scipen設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言 設置ylab每個漢字豎向排列的操作

    R語言 設置ylab每個漢字豎向排列的操作

    這篇文章主要介紹了R語言 設置ylab每個漢字豎向排列的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言操作XML文件實例分析

    R語言操作XML文件實例分析

    在本篇文章里小編給大家整理的是一篇關于R語言操作XML文件實例分析,有興趣的朋友們可以跟著學習下。
    2021-05-05
  • R語言數(shù)據(jù)可視化學習之圖形參數(shù)修改詳解

    R語言數(shù)據(jù)可視化學習之圖形參數(shù)修改詳解

    這篇文章主要給大家介紹了關于R語言數(shù)據(jù)可視化學習之圖形參數(shù)修改的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • R語言刷題檢驗數(shù)據(jù)缺失類型過程詳解

    R語言刷題檢驗數(shù)據(jù)缺失類型過程詳解

    這篇文章主要為大家介紹了R語言刷題中檢驗數(shù)據(jù)缺失類型的過程示例分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11

最新評論