RStudio 操作指南
本教程将介绍在 OpenBayes 平台使用 RStudio 进行高性能计算的入门操作。
创建容器
- 点击左侧「高性能计算」,新建一个容器
- 选择所需算力
- 「计费方式」处选择所需付费方式
- 「选择镜像」处选择所需软件,此处以「rstudio」为例
- 「容器名称」处输入 1 个合法的容器名称
- 「数据绑定」处选择要绑定的数据仓库或执行,如果没有需要绑定的数据可以忽略
- 点击「执行」
- 等待容器分配好资源,状态变为「运行中」后,在「API 地址」处点击链接。
账号密码
进入 RStudio Server 页面前需要输入账号和密码。
- 账号:rstudio
- 密码:rstudio
进入 RStudio 工作目录
本教程使用了模拟心理学上一个比较常用的量表抑郁量表的测评数据进行分析演示,示例数据集获取。
1. 进入 RStudio Server 页面
进入 RStudio Server 页面,和本地安装使用的 RStudio 是一样的,唯一不同的是「工作目录」。 在页面右下角可看到目录。 输入以下命令可以查看当前工作目录,为:/hone/rstudio
getwd()
2. 变更工作目录
为方便数据分析,可输入以下代码将 rstudio 当前工作目录变更为 /home
setwd("~/home")
在 home 目录下新增 data 文件夹,output 文件夹,将原始数据,输出结果及源代码文件均存在在 home 文件夹中,如下图所示。
3. 数据准备
3.1 上传数据
- 方法一:提前上传到自己的数据集,启动容器时直接 input,详情可参考 算力容器数据绑定
- 方法二:将准备好的数据文件,点击「upload」上传至当前工作目录下,如下图所示
3.2 读取数据
使用 readxl 函数读取准备好的 phq.xlsx 中的第 2 个 sheet。
library(readxl)
df <- read_excel("~/home/data/PHQ.xlsx",1)
读取完成后在运行以下代码,读取它的前 6 行。
head(df)
对数据进行初步预处理,核查:
- 数据类型;
- 分类因子化;
- 是否有缺失值。
分类因子化:
factor(df$gender,ordered = TRUE)
factor(df$grade,ordered = TRUE)
数据类型:
str(df) #确认各列数据的类型
查看是否有缺失值:
sum(is.na(df))#查看是否有缺失值
na.omit(df)#如果有缺失值,删除缺失值
4. 数据分析
4.1 计算量表总分
输入以下命令,使用 apply 函数对 4—12 列按行求和。
df$phq <- apply(df[c(4:12)],1,sum)
head(df)
4.2 利用 cut 函数进行结果等级划分
得到计算结果后要对分数进行划分,这里 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
4.3 利用 psych 包进行描述性统计
得到划分结果后,要对数据进行描述统计。首先需要安装「psych」,输入以下命令进行安装。
library(psych)
安装完成后输入以下命令加载「psych」。
phqdescri <- psych::describe(df)
phqdescri
4.4 不同得分等级的数量汇总分析
利用 table 进行整体数量分析汇总,这里可以使用 psych 包中的 describeBy 函数,按年级和性别分类汇总不同等级的下数量分布。
首先输入以下命令,对不同的分等级的数量进行汇总。
levelphq <- table(df$level) #各等级的数量
levelphq
然后分别输入以下命令,按性别和年级分类汇总不同等级下的数量分布。
genderlevel <- df l>
subset(select=c(gender,level))l>
table()l> addmargins() #不同性别抑郁等级分布情况
genderlavel
genderlevel <- df l>
subset(select=c(gender,level))l>
table()l> addmargins() #不同年级抑郁等级分布情况
genderlavel
4.5 利用 psych 包中的 describeBy 函数计算得分均值
输入以下命令即可开始计算:
henderDescri <-psych::describeBy(df[c("phq")],
list(df$gender))#不同性别得分差异
genderDescri
henderDescri <-psych::describeBy(df[c("phq")],
list(df$gender))#不同性别得分差异
genderDescri
4.6 利用 psych 包中的 alpha 函数进行信度分析
#信度分析
library(psych)
phqr <-alpha(df[,c(4:12)])
phqr
4.7 利用题总相关计算量表信度
利用「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()
最后可以返回控制台界面查看输出文件。