数据帧中数据帧的名称列表

时间:2015-06-14 15:21:15

标签: r list dataframe names

我通常会将一堆.csv文件读入数据框列表并手动命名。

#...code for creating the list named "datos" with files from library 
# Naming the columns of the data frames
names(datos$v1r1)<-c("estado","tiempo","x1","x2","y1","y2")
names(datos$v1r2)<-c(...)
names(datos$v1r3)<-c(...)

我想自动重命名操作。为此,我在datos列表中为每个数据框创建了一个包含我想要的名称的数据框。

以下是我生成此数据框的方法:

pru<-rbind(c("UT","TR","UT+","TR+"),
            c("UT","TR","UT+","TR+"),
            c("TR","UT","TR+","UT+"),
            c("TR","UT","TR+","UT+"))

vec<-paste("v1r",seq(1,20,1),sep="")
tor<-paste("v1s",seq(1,20,1),sep="")


nombres<-do.call("rbind", replicate(10, pru, simplify = FALSE))

nombres_df<-data.frame(corrida=c(vec,tor),nombres)

由于nombres_df$corrida[1]v1r1,我必须为datos$v1r1("estado","tiempo", nombres_df[1,2:5])命名,依此类推其他40个元素。 我想自动重命名。我以为我可以使用使用正则表达式的东西。

仅仅为了记录,我不知道为什么但是数据帧列表的顺序与1:20序列不同(我的意思是10在2,3,4之前出现... 。)

这是一个具有相似结构但数据帧越来越短的列表的玩具示例。

toy<-list(a=replicate(6,1:5),b=replicate(6,10:14))

1 个答案:

答案 0 :(得分:1)

您有一个数据框,其中变量corridas是要重命名的数据框的名称,其余列是该数据框的所需变量名称。您可以使用循环来执行所有重命名操作:

for (i in seq_len(nrow(nombres_df))) {
  names(datos[[nombres_df$corridas[i]]]) <- c("estado","tiempo",nombres_df[i,2:length(nombres_df)])
}