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

如何解决R脚本运行时的'invalid description argument'错误?

解决R脚本source时的"invalid 'description' argument"错误

问题重现

执行source("C:/Users/JNunl/OneDrive/Desktop/DASCRIPT.R")时返回报错:

Error in file(file, "rt") : invalid 'description' argument

已完成以下操作仍未解决:

  • 启动R Studio并创建与脚本目录一致的新项目
  • 确认安装所有依赖库
  • 反复核对路径无误
  • 尝试导入数据集后运行代码

移除文件名后缀后脚本可运行,但后续流程报错。

可能原因与解决方案

1. 脚本文件访问问题

  • 确认文件可用性:手动打开C:/Users/JNunl/OneDrive/Desktop/DASCRIPT.R,检查文件是否损坏、无乱码。若文件存储在OneDrive,右键选择「始终在此设备上保留」,避免在线文件无法被R读取。
  • 规避路径输入错误:在RStudio的「Files」面板中找到该脚本,点击右上角的「Source」按钮直接运行,跳过手动输入路径的步骤。

2. 脚本内工作目录设置错误

脚本中setwd("~/~")是无效路径(~代表用户主目录,~/~指向主目录下不存在的~文件夹),会导致后续读取csv、xlsx文件失败,甚至触发source时的路径异常:

  • 删除该行代码(RStudio项目已自动设置工作目录),或替换为实际路径:
    setwd("C:/Users/JNunl/OneDrive/Desktop")
    

3. 后续流程报错的补充修复

当source成功后,若仍有报错,可按以下步骤排查:

  • 确认csv文件存在:执行list.files(pattern="csv"),检查返回结果是否为有效文件名,若为空则调整pattern参数或确认csv文件在工作目录内。
  • 指定Excel文件完整路径:将read_excel("stn.xlsx")替换为完整路径,避免文件找不到:
    stns = read_excel("C:/Users/JNunl/OneDrive/Desktop/stn.xlsx")
    
  • 处理日期格式问题:month(as.Date(a$Sdt))依赖a$Sdt为标准日期格式,若转换失败会生成NA,可指定日期格式参数(需根据实际数据格式调整):
    a$Mn = month(as.Date(a$Sdt, format = "%Y-%m-%d"))
    

原脚本代码

library(seacarb)
library(readxl)
library(lubridate)

setwd("~/~")

myf=list.files(pattern="csv")
para=c("YEAR", "MONTH", "STATION_ID", "STN_DEPTH_M", "LATITUDE", "LONGITUDE","SAMPLING_DATE","SAMPLE_DEPTH_M","DEPTH_CODE", "MEDIUM", "SAMPLE_ID", "VALUE_1", "VALUE_2", "VALUE_3")

result=NULL
for(i in 1: length(myf)){
  out=read.csv(myf[i], header=T)[para]
  result=rbind(result, out)
}

colnames(result)=c("Yr","Mn", "Stn","Std","Lat","Lon","Sdt","Spd","Dc", "Med", "SID", "Alk", "pH", "T")

a=subset(result, Med =="surface water")

a$Alk=as.numeric(a$Alk)
a$pH=as.numeric(a$pH)
a$T=as.numeric(a$T)
a$Mn=month(as.Date(a$Sdt))

a=subset(a, Alk>50 & Alk<125)
a=subset(a, !is.na(Alk) & !is.na(pH) & !is.na(T))

b=carb(flag=8, var1=a$pH, var2=a$Alk/50000, T=a$T, S=0.2, P=1, Pt=0.3e-9, Sit =10e-6, k1k2="r", pHscale ="F")
a$DIC=b$DIC*12000
a$pCO2=b$pCO2

stns=read_excel("stn.xlsx")

bsn<-function(x) if(nrow(subset(stns, STATION==x))>0) subset(stns, STATION==x)$BASIN else NA
lon<-function(x) if(nrow(subset(stns, STATION==x))>0) mean(subset(stns, STATION==x)$LONGITUDE) else NA
lat<-function(x) if(nrow(subset(stns, STATION==x))>0) mean(subset(stns, STATION==x)$LATITUDE) else NA

a$Basin=unlist(mapply(bsn, a$Stn), use.names=F)
a$Lat=unlist(mapply(lat, a$Stn), use.names=F)
a$Lon=unlist(mapply(lon, a$Stn), use.names=F)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:20:22