[英]R - How to correctly run the testRetest command in the psych package?
[英]How to run the psych package in parallel?
我正在使用 psych package 計算一個非常大的數據集的四項相關性,該數據集包含 1000 個變量和 288,059 個案例。
數據可以在這里下載:
https://www.dropbox.com/s/iqwgdywqfjvlkku/data.csv.zip?dl=0 (4MB)
我的代碼如下所示:
library(psych)
library(tidyverse)
temp = read.csv("~/Temp/data.csv", sep=",")
tetravalues = tetrachoric(temp, delete=FALSE)
tetraframe = tetravalues$rho
write.csv(tetraframe, file="~/Temp/output.csv")
目前這段代碼已經運行了8個小時,還沒有結束:
tetravalues = tetrachoric(temp, delete=FALSE)
根據 psych package 手冊(tetrachoric):
這是一個計算密集型 function,可以通過使用多個內核和並行 package 來顯着加快速度。可以使用選項命令指定執行多色或四色時要使用的內核數。 速度的最大提升是從 1 核增加到 2 核。這大約節省了 50%。 使用 4 個內核似乎可以節省 66%,而使用 8 個內核可以節省 75%。 並行進程數默認為 2,但可以使用 options 命令修改:options("mc.cores"=4) 會將核心數設置為 4。
我的筆記本電腦有 10 個內核。
我是 R 的新手,一直無法弄清楚如何並行運行我的代碼。
任何想法表示贊賞。
圖書館(psych) 圖書館(tidyverse)
temp = read.csv("~/Temp/data.csv", sep=",")
tetravalues = tetrachoric(temp, delete=FALSE)
tetraframe = tetravalues$rho
write.csv(tetraframe, file="~/Temp/output.csv")
您基本上自己提供了問題的答案。
您可以在下面的代碼中調整核心數。 請注意,當你想在計算運行時將筆記本電腦用於其他事情時,我不會將核心數設置為最大值。
這是 R 中有關並行計算的快速介紹。
library(psych)
library(tidyverse)
# Here you can pick the number of cores.
options("mc.cores"=4)
temp = read.csv("~/Temp/data.csv", sep=",")
tetravalues = tetrachoric(temp, delete=FALSE)
tetraframe = tetravalues$rho
write.csv(tetraframe, file="~/Temp/output.csv")
tetravalues = tetrachoric(temp, delete=FALSE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.