r语言 - 使用多个 csv 的列表处理两行标题



我有一个2546个csv文件的列表,每个文件有不同数量的列和行。已经作为列表导入所有这些文件如下:

temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.csv)

由于每个csv都有两个标题行,并且需要这两个信息才能在最后加入所有csv,我想请你帮忙,因为我只能为其中一个这样做:

headers <- read.csv("filename.csv", nrows=2, header=FALSE) 
headers_names <- sapply(headers,paste,collapse="_") 
data <- read.csv(file="filename.csv", skip = 2, header=FALSE, stringsAsFactors = F)
names(data) <- headers_names

以下是其中一个数据集的示例:

TimeDate        Hostname   VCORE  X.1.5V    AVSB   X3VCC    X.5V   X.12V
1                  TimeDate        Hostname Voltage Voltage Voltage Voltage Voltage Voltage
2 2018-02-15T12:00:45+00:00 TL-1337H1DE2018   1.728    1.56   3.312    3.36    5.16   3.072
3 2018-02-15T12:01:45+00:00 TL-1337H1DE2018   1.728    1.56   3.312    3.36    5.16   3.072
4 2018-02-15T12:02:45+00:00 TL-1337H1DE2018   1.728    1.56   3.312    3.36    5.16   3.072
5 2018-02-15T12:03:45+00:00 TL-1337H1DE2018   1.728    1.56   3.312    3.36    5.16   3.072
6 2018-02-15T12:04:45+00:00 TL-1337H1DE2018   1.728    1.56   3.312    3.36    5.16   3.072

它需要一个for循环,因为它是一个列表,但已经尝试了好几次都没有成功。

将一个有效的东西包装到函数fun1中,该函数将文件名fileN作为参数。

fun1<-
function(fileN) {
headers <- read.csv(fileN, nrows=2, header=FALSE, stringsAsFactors = FALSE) 
headers_names <- sapply(headers,paste,collapse="_") 
data <- read.csv(file=fileN, skip = 2, header=FALSE, stringsAsFactors = FALSE)
names(data) <- headers_names
return(data)
}

现在应用于temp中的所有文件名。

ans<-
lapply(temp, fun1)

最新更新