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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…