将多个数据帧合并为一个之后,我想知道如何更改主数据框中的列标题以表示它们来自的原始文件。我使用下面的代码将大量数据框合并为一个:
library(plyr)
dflist = list.files(path=dir, pattern="csv$", full.names=TRUE, recursive=FALSE)
import.list = llply(dflist, read.csv)
Master = Reduce(function(x, y) merge(x, y, by="Hours"), import.list)
我希望属于每个原始数据帧的列由原始数据帧/ csv文件命名的唯一ID命名(即aa,ab,ac)。文件名中的唯一ID紧跟在低行之前(" _"),因此我可以使用下面的代码将它们隔离。但是,我现在无法将其应用于列标题。任何帮助将不胜感激。
filename = dflist[1]
unqID = strsplit(filename,"_")[[1]][1]
答案 0 :(得分:1)
您可以在llply
来电中定义一项功能,并read.csv
指定名称。
或者在合并@joran建议之前和之后重新命名它们
#First get the names
filenames = dflist
#I am unsure about the line below, as I
unqID = lapply(filenames,function(x) strplit(x,"_")[1])
names(import.list) <- paste("unqID", names(import.list),sep=".") #renaming the list items
然后使用您的代码合并