You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R Markdown中使用RHRV包LoadBeatAscii加载心率数据报错求助

RHRV包LoadBeatAscii()加载数据报错:cannot change working directory

在R Markdown中使用RHRV包的LoadBeatAscii()函数加载.txt格式心率数据时,出现如下报错:

Error in setwd(RecordPath) : cannot change working directory

示例代码

library(RHRV) 
hrv.data <- CreateHRVData() # 创建空列表对象用于存储原始数据
hrv.data <- SetVerbose(hrv.data, TRUE) # 返回额外运行信息
hrv.data <- LoadBeatAscii(hrv.data, RecordName = "beat_ascii.txt", RecordPath = "Data/beat_ascii.txt") # 尝试从Data文件夹加载数据

数据说明

使用的示例数据来自milegroup的beat_ascii.txt,也可直接使用以下样本数据:

c(1.036, 1.7, 2.364, 3.024, 3.668, 4.324, 4.98, 5.656, 6.312, 
6.96, 7.612, 8.248, 8.896, 9.54, 10.184, 10.824, 11.472, 12.128, 
12.776, 13.432, 14.088, 14.756, 15.424, 16.112, 16.768, 17.444, 
18.124, 18.816, 19.484, 20.164, 20.856, 21.552, 22.224, 22.9, 
23.6, 24.304, 24.968, 25.644, 26.328, 27.008, 27.68, 28.356, 
29.036, 29.696, 30.356, 31.032, 31.684, 32.344, 33, 33.66, 34.312, 
34.976, 35.644, 36.3, 36.964, 37.64, 38.308, 38.988, 39.676, 
40.348, 41.04, 41.744, 42.424, 43.1, 43.776, 44.46, 45.128, 45.808, 
46.496, 47.168, 47.808, 48.48, 49.136, 49.788, 50.44, 51.112, 
51.756, 52.412, 53.064, 53.712, 54.372, 55.028, 55.696, 56.344, 
57.008, 57.672, 58.332, 58.996, 59.652, 60.3, 60.948, 61.584, 
62.22, 62.852, 63.476, 64.096, 64.724, 65.356, 65.992, 66.628
)

问题更新

已有其他用户遇到相同问题,但暂未找到官方解决方案。


原因分析

报错核心原因是参数传值错误:LoadBeatAscii()的RecordPath参数要求传入文件夹路径,但你传入的是完整的文件路径。函数内部会调用setwd(RecordPath)尝试切换工作目录到该路径,而文件路径不是合法的文件夹,因此触发报错。

解决方法

方法1:正确拆分路径参数

将RecordPath设为数据所在文件夹,RecordName设为文件名:

library(RHRV) 
hrv.data <- CreateHRVData()
hrv.data <- SetVerbose(hrv.data, TRUE)
# 仅把文件夹路径传给RecordPath
hrv.data <- LoadBeatAscii(hrv.data, RecordName = "beat_ascii.txt", RecordPath = "Data")

方法2:直接传入完整文件路径

忽略RecordPath参数,将完整文件路径传给RecordName:

hrv.data <- LoadBeatAscii(hrv.data, RecordName = "Data/beat_ascii.txt")

方法3:手动切换工作目录

先切换到数据所在文件夹,再加载数据,加载完成后可切回原目录:

setwd("Data") # 切换到数据文件夹
hrv.data <- LoadBeatAscii(hrv.data, RecordName = "beat_ascii.txt")
setwd("..") # 切回上一级目录

补充:使用绝对路径

如果相对路径容易出错,可直接使用绝对路径(根据系统调整):

# Windows示例
hrv.data <- LoadBeatAscii(hrv.data, RecordName = "beat_ascii.txt", RecordPath = "C:/Users/你的用户名/项目目录/Data")
# Mac/Linux示例
hrv.data <- LoadBeatAscii(hrv.data, RecordName = "beat_ascii.txt", RecordPath = "/Users/你的用户名/项目目录/Data")

内容的提问来源于stack exchange,提问作者kpm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 15:54:53