以 `sep=,` 作为第一行将 csv 加载到 R

Loading csv into R with `sep=,` as the first line

我从 (PowerBI) 导出数据的程序将数据保存为 .csv 文件,但文件的第一行是 sep=,,然后文件的第二行有 header(列名)。

示例假 .csv 文件:

sep=,
Initiative,Actual to Estimate (revised),Hours Logged,Revised Estimate,InitiativeType,Client
FakeInitiative1 ,35 %,320.08,911,Platform,FakeClient1
FakeInitiative2,40 %,161.50,400,Platform,FakeClient2

我正在使用此命令读取文件:

initData <- read.csv("initData.csv",
                   row.names=NULL,
                   header=T,
                   stringsAsFactors = F)

但我不断收到错误消息,指出列数错误(因为它认为第一行告诉它列数)。

如果我执行 header=F 而不是加载,但是当我执行 names(initData) <- initData[2,] 时名称包含空格和非法字符,它会破坏我的程序的其余部分。讨厌。

有谁知道如何告诉 R 忽略第一行?我可以在文本编辑器中进入 .csv 文件,然后在每次加载它之前手动删除第一行(如果我这样做,一切正常)但我必须导出一堆文件,这有点愚蠢又乏味。

如有任何帮助,我们将不胜感激。

有很多方法可以做到这一点。这是一个:

all_content = readLines("initData.csv")
skip_first_line = all_content[-1]
initData <- read.csv(textConnection(skip_first_line),
                   row.names=NULL,
                   header=T,
                   stringsAsFactors = F)

您的文件可能采用 UTF-16 编码。请参阅 如何读取 UTF-16 文件: