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

基于网站7天数据创建DataFrame:列名与文件读取问题

问题解决步骤

1. 修复文件找不到的问题

你用writeLines(d, con="test.csv")将文件保存到了当前工作目录,但后续读取时指定路径为data/test.csv,R会在当前目录下的data子文件夹查找,自然找不到。解决方法二选一:

  • 直接读取当前目录的文件:
    df <- read.table(file="test.csv", sep=";", dec=",", header=T, stringsAsFactors=F)
    
  • 先创建data文件夹再保存(避免文件杂乱):
    dir.create("data", showWarnings = FALSE) # 仅当文件夹不存在时创建
    writeLines(d, con="data/test.csv")
    df <- read.table(file="data/test.csv", sep=";", dec=",", header=T, stringsAsFactors=F)
    

2. 优化数据读取流程(跳过存文件直接转DataFrame)

无需先存成CSV再读取,直接处理readLines的结果更高效,还能直接解决列名问题:

# 正确拼接URL(修正原代码的语法错误)
url <- paste0("https://www.pse.pl/getcsv/-/export/csv/PL_GEN_WIATR/data_od/", 
              format(Sys.Date()-7, "%Y%m%d"), 
              "/data_do/", 
              format(Sys.Date(), "%Y%m%d"))
d <- readLines(url)

# 拆分列名和数据行
col_names <- strsplit(d[1], ";")[[1]]
data_rows <- lapply(d[-1], function(x) strsplit(x, ";")[[1]])

# 转换为DataFrame并设置表头
df <- as.data.frame(do.call(rbind, data_rows), stringsAsFactors = FALSE)
colnames(df) <- col_names

# 将数值列转换为数值类型(适配CSV中的逗号小数点)
df[-1] <- lapply(df[-1], function(x) as.numeric(gsub(",", ".", x)))

3. 原代码的URL拼接错误说明

你原来的paste写法存在语法问题,字符串拼接混乱导致URL格式错误,上面的代码用paste0(自动无分隔符拼接)修正了这个问题,确保请求的URL是合法的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:05:40