如何将RR间期向量加载到RHRV的HRVData数据结构中
RHRV库导入自定义RR间期向量操作方案
RHRV没有直接提供RR向量导入接口,但可通过「RR序列转心跳时间位置+内置向量导入函数」的方式完成HRVData结构构造,全程不需要生成临时数据文件,操作步骤如下:
- 加载依赖库
library(RHRV)
- 初始化空HRVData对象
# 创建空结构,可按需关闭/开启日志输出 hrv_obj <- CreateHRVData() hrv_obj <- SetVerbose(hrv_obj, verbose = TRUE)
- 预处理自定义RR序列
从csv读取的RR序列单位为毫秒,需要先转换为秒单位,再累计计算每个心跳的绝对时间位置(第一个心跳默认从0时刻开始):
# 测试用RR序列,实际使用时替换为自己的RR向量即可 RR_series <- rnorm(300, mean = 1000, sd = 15) # 毫秒转秒 RR_sec <- RR_series / 1000 # 计算所有心跳的时间位置 beat_time <- c(0, cumsum(RR_sec))
- 导入心跳位置到HRVData结构
使用RHRV内置的LoadBeatVector()函数直接导入向量形式的心跳位置,不需要走外部文件导入流程:
# scale=1代表传入的beat_time单位为秒 hrv_obj <- LoadBeatVector(hrv_obj, beat_time, scale = 1)
- 完成HRV分析前置预处理
导入心跳位置后需要执行RHRV标准预处理流程,才能正常调用后续的时域、频域、非线性分析函数:
# 构建RR间期序列矩阵 hrv_obj <- BuildNIHR(hrv_obj) # 可选:自动过滤异常RR值,若数据已提前清洗可跳过此步 hrv_obj <- FilterNIHR(hrv_obj) # 重采样为等间隔序列,默认4Hz采样率适配绝大多数HRV分析场景 hrv_obj <- InterpolateNIHR(hrv_obj, freqhr = 4)
- 导入有效性验证
可直接调用时域分析函数测试导入是否正常:
# 执行时域分析 hrv_obj <- CreateTimeAnalysis(hrv_obj, size = max(beat_time), interval = 1) # 输出计算得到的SDNN、RMSSD等时域指标 hrv_obj$TimeAnalysis[[1]]
注意事项
- 禁止手动修改HRVData对象的内部列表字段,所有操作优先使用RHRV官方提供的配套函数,避免结构缺失引发函数报错
- 若你的心跳位置不是秒单位,需要调整
LoadBeatVector()的scale参数,确保最终导入的时间单位为秒 - 若RR序列已经提前完成异常值剔除、伪差校正,可跳过
FilterNIHR()步骤,避免算法误修改有效数据
内容的提问来源于stack exchange,提问作者Rafau
相关产品推荐
相关产品推荐

