gpt4 book ai didi

读取带有变量行的 CSV 以跳过、批量

转载 作者:行者123 更新时间:2023-12-04 10:54:55 30 4
gpt4 key购买 nike

我正在尝试创建一个循环,读取多个 CSV 文件,这些文件都具有相同类型的气温数据。但是,我想跳过数据上方的行。这些是数据集中的“警报”。每个文件可能有不同数量的警报,因此要跳过不同数量的行。见下文:

-------------First CSV file---------------
Logger 001
Alarm 1
Alarm 2
Alarm 3
Alarm 4
Date, Temp
01/01/2011, -1.2
01/02/2011, -1.3
01/03/2011, -1.1
01/04/2011, -1.2

-------------Second CSV file---------------
Logger 001
Alarm 1
Alarm 2
Alarm 3
Alarm 4
Alarm 5
Alarm 6
Alarm 7
Date, Temp
01/01/2011, -1.2
01/02/2011, -1.3
01/03/2011, -1.1
01/04/2011, -1.2

如何获得 Date 的索引, Temp告诉 read.csv跳到那一行?
for (i in 1:length(csv.list))  {
df = read.csv(csv.list[i], header = T, skip=????????)
}

最佳答案

您可以在 read.table 之前添加几行在你的循环中

使用 readLines读入数据

r <- readLines(textConnection("Logger 001
Alarm 1
Alarm 2
Alarm 3
Alarm 4
Date, Temp
01/01/2011, -1.2
01/02/2011, -1.3
01/03/2011, -1.1
01/04/2011, -1.2"))

[但没有给你的 textConnection 即 r <- readLines("yourcsv") ]

找到实际标题开始的行号 - 使用 grep
dt <- grep("Date",r)

读入您的数据 - 跳过标题之前的行
read.table(text=r , header=TRUE, sep="," , skip = dt-1)

因此,要读取您的多个 csv 文件 - 这些将存储在数据、帧列表中
 df.lst <- lapply(csv.list , function(i) {
r <- readLines(i)
dt <- grep("Date",r)
read.table(text=r , header=TRUE, sep="," , skip = dt-1)
})

关于读取带有变量行的 CSV 以跳过、批量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305128/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com