knitr::opts_chunk$set(echo = TRUE,eval = FALSE)
设置分析环境,加载相关软件包
# 如果remote安装包未安装,则首先安装
install.packages("remotes")
# 安装REDCapR软件包
remotes::install_github("OuhscBbmc/REDCapR")
# 安装日期处理的函数
install.packages("lubridate")
# 安装数据处理函数
install.packages("tidyverse")
# 加载REDCapR安装包
library(REDCapR)
library(tidyverse)
library(lubridate)
准备导入数据的相关参数
#设置api_token
api_token <- 'F13030F5DC1C4053CB05B269ED70898C'
#设置api_url
api_url <- 'https://www.wcrcnet.cn/redcap/api/'
#设置路径
setwd("E:/R/Learning_R")
导出数据
使用REDCapR包中redcap_read_oneshot函数从REDCap中导出项目数据并核对数据格式
#导出项目内容为result_sample
result_sample<-REDCapR::redcap_read_oneshot(
redcap_uri=api_url,
token=api_token
)
#将其中data部分另存为本地数据文件ds
ds <- result_sample$data
#列出ds中指定的变量
ds$daae_7ca5_complete
整理要导入的数据
整理之前,现在xlsx中对数据缺失值进行处理,将"."值全部用空值进行替换,随后导入R
##导入数据
import <- read_csv("基线数据导入 (试验版).csv")
##日期数据处理
import <-import%>%
mutate(
birth_date= lubridate::mdy(birth_date), #将出生日期进行格式调整
base_date= lubridate::mdy(base_date), #将基线调查日期日期进行格式调整
daae_7ca5_complete=2, #将表格是否完成变量(daae_7ca5_complete)设置为完成(2)
redcap_event_name="eb054609fe_arm_1" #将事件变量(redcap_event_name)设置为基线调查(eb054609fe_arm_1)
)
导入数据
应用REDCapR包中的redcap_write函数上传数据。
result_write<-REDCapR::redcap_write(
import, #指定要导入的csv格式数据
batch_size = 100L, #设置单次批量导入数据条数
interbatch_delay = 0.5, #设置网络通讯无响应等待时间
continue_on_error = FALSE, #如果传输中出现错误如何处理,默认FALSE,继续上传数据
redcap_uri=api_url, #使用的REDCapURL
token=api_token, #使用的REDCaptoken
overwrite_with_blanks = TRUE, #如果要上传的是空值,是否覆盖服务器上的数据内容?
convert_logical_to_integer = FALSE, #布尔逻辑判断符是否转换为整数0/1
verbose = TRUE, #传输过程中是否在R终端中显示消息信息
config_options = NULL, #其他一些可选项
handle_httr = NULL #是否通过http传输
)