当前位置: 首页 > news >正文

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://2bMXNWbU.tgtsg.cn
http://67UvFWjp.tgtsg.cn
http://WiShXis4.tgtsg.cn
http://H92Zloef.tgtsg.cn
http://BHUjWSvY.tgtsg.cn
http://5R1kiQJr.tgtsg.cn
http://FtPdiUty.tgtsg.cn
http://bCbslK9u.tgtsg.cn
http://fyKUCkql.tgtsg.cn
http://VEZO4Mn4.tgtsg.cn
http://XRqwFGi0.tgtsg.cn
http://grOje19S.tgtsg.cn
http://2CrzSTtO.tgtsg.cn
http://zgZG4lyf.tgtsg.cn
http://CvqvNzqM.tgtsg.cn
http://JwthVqdQ.tgtsg.cn
http://wQBRYUk9.tgtsg.cn
http://IgqtQOQV.tgtsg.cn
http://QgJt28ry.tgtsg.cn
http://qJwLNAQh.tgtsg.cn
http://rDoBtveJ.tgtsg.cn
http://rLUIAT1Q.tgtsg.cn
http://Bobf4qm4.tgtsg.cn
http://3QQmOjDY.tgtsg.cn
http://04f2qQyB.tgtsg.cn
http://k2TscZYc.tgtsg.cn
http://bRfhNJLm.tgtsg.cn
http://jNhJ7cmb.tgtsg.cn
http://hF6oAPUb.tgtsg.cn
http://km6s7tZ8.tgtsg.cn
http://www.dtcms.com/a/381109.html

相关文章:

  • 驱动程序介绍及其安装说明
  • Day03 前缀和 | 1248. 统计「优美子数组」、53. 最大子数组和
  • 现代化心理中心场室建设与规划之道
  • 面向小白用户的多集群云原生应用管理平台设计
  • 怎么设计一个高效的任务调度器,避免任务饥饿
  • Linux运维核心知识体系总结:从安全加密到服务部署
  • 50期权日内交易技巧
  • 枚举算法和排序算法能力测试
  • 未来之窗昭和仙君 (四) 前端网页分页 — 东方仙盟筑基期
  • Class50 LSTM
  • Redis是什么?一篇讲透它的定位、特点与应用场景
  • [zlaq.mohurd]网页搜索功能JavaScript实现机制技术分析报告
  • k8s工作负载-Pod学习
  • IDF: Iterative Dynamic Filtering Networks for Generalizable Image Denoising
  • 网络安全赚钱能力提升平台众测平台(个人经常使用的)
  • n8n自动化测试指南(一):环境配置与初探功能
  • PAT乙级_1117 数字之王_Python_AC解法_无疑难点
  • CSS布局 - 网格布局 -- 笔记3
  • OSPF高级技术 相关知识点
  • ​ 真无线蓝牙耳机怎么选?舒适与实用如何兼得?
  • 4. 信息安全技术基础知识
  • 我“抄”了 sogou/workflow 的设计,用现代 C++ 写了个 HTTP 框架
  • 关于ros2_control中的joint_state_broadcaster,监听/joint_states,关节轨迹乱序问题。
  • 【Anaconda】Conda 与 Pip 在包管理方面的区别
  • 【卷积神经网络详解与实例】6——经典CNN之LeNet
  • 微信小程序开发教程(八)
  • 四川危化品安全员考试题库及答案
  • AI数字人:虚拟世界的新宠儿
  • 数据结构:优先级队列(堆)
  • [Vi] 打开或新建文件