RStudio 教程:以抑郁量表測評數據分析為例

R 語言是一種專為統計計算、數據分析和圖形可視化而設計的編程語言,在學術界和工業界都備受青睞。RStudio是一款為 R 語言量身打造的集成開發環境(IDE)。它如同一個功能強大的指揮中心,能夠將數據科學工作所需的一切:控制臺、腳本編輯器、環境窗口、文件管理、包管理、幫助文檔和繪圖窗口等集成在一個界面中,極大地提升了編程與數據分析的效率和體驗。

OpenBayes 平臺現已內置了 RStudio 軟件鏡像,今天給大家介紹一下如何在 OpenBayes 平臺使用 RStudio 進行高性能計算的入門操作,本教程導入了模擬心理學上一個比較常用的量表抑郁量表的測評數據進行分析演示。

新用戶使用下方邀請鏈接注冊,可獲得 4 小時?RTX 4090?+ 5 小時 CPU 的免費時長!

小貝總專屬邀請鏈接(直接復制到瀏覽器打開):
https://go.openbayes.com/9S6Dr

一、工具準備

  1. 創建容器

首先進入「高性能計算」頁面,點擊「創建新容器」。

創建容器頁面,選擇和填寫容器信息。然后點擊「執行」

  • 算力選擇:默認為 RTX 4090;
  • 計費方式:默認為「按量付費」。還可以選擇包日/月/周。免費資源(邀請鏈接會寫在簡介中):使用視頻下方邀請鏈接可以獲得 4 小時 RTX 4090 和 5 小時 CPU。
  • 鏡像選擇:已經內置了一些高性能計算所需軟件,可以在研究范圍內直接使用。這里我們要使用 R 軟件進行數據分析,所以選「rstudio」。
  • 容器名稱:按照要求填寫即可

2. 進入 R studio Server

待系統分配好資源,當狀態變為「運行中」后,點擊「打開工作空間」。

進入到工作空間后,在頁面右邊,點擊「API 地址」打開(先要進行支付寶實名認證),默認用戶名和密碼都是 rstudio,填寫正確后,即可進入了?Rstudio Server?的界面。

3. 設置 RStudio 工作目錄

進入到 Rstudio Server 頁面后,可以發現跟我們本地安裝使用的 Rstudio 是一樣的。而唯一不同的是工作目錄。
輸入以下命令查看當前工作目錄,為:/home/rstudio

getwd() 

為了方便數據分析,我們可輸入以下命令將 rstudio 當前工作目錄變更為「/home」,在 home 目錄下新增 data 文件夾和 output 文件夾,將原始數據、輸出結果及源代碼文件均存放在 home 文件夾中。

setwd("~/home")

二、數據準備

將準備好的 Excel 數據文件,上傳至當前工作目錄下。本教程使用的數據集為「PHQ 心理學抑郁量表的測評數據」,是模擬心理學上一個比較常用的量表抑郁量表的測評數據。

獲取數據集:https://go.openbayes.com/6uF7Y

運行以下命令讀取準備好的 PHQ.xlsx 中的第 2 個 sheet。

library(readxl)
df <- read_excel("~/home/data/PHQ.xlsx",1)

讀取完成后在運行以下代碼,讀取它的前五行。

head(df)


對數據進行初步預處理,核查:第一,數據類型;第二,分類因子化;第三,是否有缺失值。
分類因子化:

factor(df$gender,ordered = TRUE)
factor(df$grade,ordered = TRUE)

數據類型:

str(df) #確認各列數據的類型

查看是否有缺失值:

sum(is.na(df))#查看是否有缺失值
na.omit(df)#如果有缺失值,刪除缺失值


三、數據分析

  1. 計算量表總分

輸入以下命令對 4—12 列按行求和。

df$phq <- apply(df[c(4:12)],1,sum)
head(df)

得到計算結果后要對分數進行劃分,這里 PHQ 量表的劃分標準為:1-4 分正常,5-9 分輕度抑郁,10-14 分中度抑郁,15-19 分中重度抑郁,20-27 分重度抑郁。輸入以下命令,模型即可按照標準劃分。

df$level <- cut(df$phq,c(0,4,9,14,19,27),labels = c("正常","輕","中","中重","重"))
df

得到劃分結果后,要對數據進行描述統計。首先需要安裝「psych」,輸入以下命令進行安裝。

library(psych)

安裝完成后輸入以下命令加載「psych」。

phqdescri <- psych::describe(df)
phqdescri

2. 不同得分等級的數量匯總分析

輸入以下命令,對不同的分等級的數量進行匯總。

levelphq <- table(df$level) #各等級的數量
levelphq

然后輸入以下命令,按年級和性別分類匯總不同等級下的數量分布。

genderlevel <- df l>subset(select=c(gender,level))l>table()l> addmargins() #不同性別抑郁等級分布情況
genderlavelgenderlevel <- df l>subset(select=c(gender,level))l>table()l> addmargins() #不同年級抑郁等級分布情況
genderlavel

3. 計算得分均值

利用「psych」包中的「describeBy」函數計算得分均值,輸入以下命令即可開始計算。

henderDescri <-psych::describeBy(df[c("phq")],list(df$gender))#不同性別得分差異
genderDescrihenderDescri <-psych::describeBy(df[c("phq")],list(df$gende))#不同年級得分差異
genderDescri

4. 信度分析

運行以下命令,利用「psych」包中的「alpha」函數進行信度分析。

#信度分析
library(psych)
phqr <-alpha(df[,c(4:12)])
phqr

5. 計算量表信度

利用「psych」包中的「corr」函數可以進行題總相關的信度分析。

rr <- corr.test(df[,c(4:12)],df$phq)
rr$r #提取相關系數

rr$p #提取p值

resultphq <- round(rr$p,3)#保存結果,設置小數點后位數為3位
conlnames(result) <- c("phq")#修改結果中的列表為phq
resultphq

四、報告保存

保存結果需要用到「writexl」包,運行以下命令安裝。

install.packages("writexl")


安裝完成之后,輸入以下命令加載。

library(writexl)

我們在上述分析時,每一步分析都會把分析結果保存,命名為一個名稱。然后把這些命名的對象創建成一個列表 list。用 sink 函數在目錄中創建「output」文件夾。將分析結果保存到該文件夾下。

result_list <- list(df,phgdescri,genderDescri,gradeDescri,levelphg,genderlevel,gradelevel ,phqr,resultphq)
sink("~/home/output/outout.txt")
print(result_list)
sink()


最后可以返回控制臺界面查看輸出文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96490.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rupert Baines加入CSA Catapult董事會

英國半導體行業領軍人物魯珀特貝恩斯&#xff08;Rupert Baines&#xff09;正式出任英國化合物半導體應用公司&#xff08;CSA Catapult&#xff09;非執行董事&#xff0c;宛若一位經驗豐富的航海家將為這艘科技旗艦指引航向。這位三次成功創業退出的科技企業家&#xff0c;將…

第七篇:識破“共因失效”——如何阻止汽車系統的“團滅”危機

想象一下這個場景&#xff1a; 你精心設計了一套雙備份的剎車系統&#xff0c;就像給車裝了兩條獨立的剎車線&#xff0c;心想&#xff1a;“這下總萬無一失了吧&#xff01;”結果&#xff0c;一場寒潮來襲&#xff0c;兩條剎車線因為同一個原因——低溫&#xff0c;同時被凍住…

健康大數據與傳統大數據技術專業有何不同?

在“數據即資產”的時代&#xff0c;大數據技術已滲透至各行各業。從電商推薦到金融風控&#xff0c;從智能制造到智慧城市&#xff0c;數據驅動的決策模式正在重塑產業格局。然而&#xff0c;隨著醫療健康領域數字化進程的加速&#xff0c;一個新興且高度專業化的分支——健康…

圖神經網絡分享系列-SDNE(Structural Deep Network Embedding) (三)

目錄 一、實驗 1.1 數據集 1.2 基線算法 1.3 評估指標 1.4 參數設置 1.5 實驗效果 1.5.1 網絡重構 1.5.1.1 方法性能優勢 1.5.1.2 特定數據集表現 1.5.1.3 模型對比分析 1.5.1.4 鄰近性重要性驗證 1.5.2 多標簽分類 1.5.3 鏈路預測 1.5.4網絡可視化的應用 1.6 參…

《WINDOWS 環境下32位匯編語言程序設計》第16章 WinSock接口和網絡編程(1)

當今的時代是網絡時代&#xff0c;網絡給生活帶來的影響超過了以往的任何事物&#xff0c;不管我們是用瀏覽器上網&#xff0c;是在打網絡游戲&#xff0c;還是用MSN、QQ等即時通信軟件和朋友聊天&#xff0c;網絡的另一端實際上都是對應的網絡應用程序在提供服務。大多數的網絡…

【筆記】Windows 安裝 TensorRT 10.13.3.9(適配 CUDA 13.0,附跨版本 CUDA 調用維護方案)

實操筆記 | Windows 安裝 TensorRT 10.13.3.9&#xff08;適配 CUDA 13.0&#xff0c;含跨版本 CUDA 調用維護示例&#xff09;—— 系統 CUDA 13.0 與虛擬環境 CUDA 12.8 版本差異時&#xff0c;TensorRT 調用維護實例詳見附錄 本文針對 TensorRT-10.13.3.9.Windows.win10.cu…

如何關閉電腦安全和防護

了解你希望關閉電腦的安全和防護功能。??請務必注意&#xff0c;關閉這些防護會使電腦暴露在安全風險中&#xff0c;僅建議在必要時&#xff08;如安裝受信任但被誤攔的軟件、進行網絡調試&#xff09;臨時操作&#xff0c;完成后請立即重新開啟。 下面是一個快速操作指南表格…

C# Entity Framework Core 的 CRUD 操作與關聯查詢實戰示例

以下是基于 Entity Framework Core 的 CRUD 操作與關聯查詢實戰示例&#xff0c;以 用戶&#xff08;User&#xff09; 和 訂單&#xff08;Order&#xff09; 實體為例&#xff08;一對多關系&#xff09;&#xff0c;包含完整代碼和操作說明。一、基礎準備1. 實體類定義&…

UniApp狀態管理深度重構指南

作為專業智能創作助手&#xff0c;我將幫助你逐步理解并實現UniApp狀態管理的深度重構。UniApp基于Vue.js框架&#xff0c;其狀態管理通常使用Vuex&#xff0c;但隨著應用規模擴大&#xff0c;狀態管理可能變得臃腫、難以維護。深度重構旨在優化性能、提升可維護性&#xff0c;…

時序數據庫:定義與基本特點

在當今的物聯網&#xff08;IoT&#xff09;、 DevOps監控、金融科技和工業4.0時代&#xff0c;我們每時每刻都在產生海量的與時間緊密相關的數據。服務器CPU指標、智能電表讀數、車輛GPS軌跡、股票交易記錄……這些數據都有一個共同的核心特征&#xff1a;時間是它們不可分割的…

linux系統安裝wps

在Linux系統上通過deb包安裝WPS Office是個不錯的選擇。下面是一個主要步驟的概覽&#xff0c;我會詳細介紹每一步以及可能遇到的問題和解決方法。步驟概覽關鍵操作說明/注意事項1. 下載DEB包訪問WPS官網下載需選擇與系統架構匹配的版本&#xff08;通常是AMD64&#xff09;2. …

git常見沖突場景及解決辦法

場景1.假設一開始 本地拉取了遠程最新的代碼 就是說本地和遠程此時一樣 然后本地寫了一個新需求git commit了 但是沒有提交到遠程倉庫 然后另外一個地方提交了某個功能的新代碼 到遠程 此時本地和遠程的代碼不一樣了 而且本地有已經 commit的 這時候 這個本地想同步遠程的最新代…

Flink面試題及詳細答案100道(41-60)- 狀態管理與容錯

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

【二開】CRMEB開源版按鈕權限控制

【二開】CRMEB開源版按鈕權限控制使用方法v-unique_auth"order-refund"<el-dropdown-itemv-unique_auth"order-refund">立即退款</el-dropdown-item >或者 滿足其中一個即可v-unique_auth"[order-delete,order-dels]"通過管理端權限…

AOSP源碼下載及編譯錯誤解決

源碼下載 軟件下載sudo apt-get updatesudo apt-get install gitsudo apt-get install curlsudo apt-get install adbsudo apt-get install reposudo apt-get install vimsudo apt-get install -y git devscripts equivs config-package-dev debhelper-compat golang curl配置g…

實驗-高級acl(簡單)

實驗-高級acl&#xff08;簡單&#xff09;預習一、實驗設備二、拓撲圖三、配置3.1、網絡互通3.2、配置ACL3.3、取消配置步驟1&#xff1a;先移除接口上的ACL應用步驟2&#xff1a;修改或刪除ACL中的錯誤規則方法A&#xff1a;直接刪除錯誤規則&#xff08;保留其他正確規則&am…

IoC / DI 實操

1. 建三層類包結構&#xff1a;com.lib ├─ config ├─ controller ├─ service ├─ repository ├─ model └─ annotation // 自定義限定符① 實體 Bookpackage com.lib.model; public class Book {private Integer id;private String title;// 全參構造 gette…

AdsPower RPA 從excel中依次讀取多個TikTok賬號對多個TikTok賬號目標發送信息

多個賬號對多個目標發送子場景 B&#xff1a;多個賬號向“不同的”目標循環發送&#xff08;最復雜的群發邏輯&#xff09;流程&#xff1a;Excel表中有一個“目標用戶”列表。RPA流程會進行嵌套循環&#xff1a;外層循環&#xff1a;遍歷Excel中的每一行數據&#xff08;即每一…

擴散模型進化史

一幅精美的圖片&#xff0c;一段精彩的視頻&#xff0c;可能始于一片純粹的噪聲。 2024年的計算機視覺頂會CVPR上&#xff0c;擴散模型成為絕對主角。從圖像生成到視頻理解&#xff0c;從超分辨率到3D建模&#xff0c;擴散模型正以驚人的速度重塑著AIGC&#xff08;AI生成內容&…

一次 Linux 高負載 (Load) 異常問題排查實錄

一次 Linux 高負載&#xff08;Load&#xff09;異常排查實錄一、背景及排查過程材料二、排查分析2.1Load 的真正含義2.2&#xff1a;確認異常進程2.3&#xff1a;線程卡在哪&#xff08;wchan&#xff09;2.4&#xff1a;perf 采樣&#xff08;用戶態/內核態熱點&#xff09;2…