R Plyr重命名数据帧列表中的多个列

R Plyr重命名数据帧列表中的多个列,r,plyr,R,Plyr,仅仅是刚刚发现的Plyr,它为我节省了一吨多数据帧组合线,这非常棒。但我有另一个重命名问题,我无法理解 我有一个列表,其中包含许多数据帧(这是一个子集,因为实际列表中实际上有108个数据帧) 我真正想要实现的是让每个数据帧的列前面都有数据帧的标题。因此,在本例中,列为: C11.X,C11.n.ENSEMBLE.COVERAGE和C11.n.ENSEMBLE.RECALL C12.X,C12.n.ENSEMBLE.COVERAGE和C12.n.ENSEMBLE.RECALL C13.X,C13.

仅仅是刚刚发现的
Plyr
,它为我节省了一吨多数据帧组合线,这非常棒。但我有另一个重命名问题,我无法理解

我有一个列表,其中包含许多数据帧(这是一个子集,因为实际列表中实际上有108个数据帧)

我真正想要实现的是让每个数据帧的列前面都有数据帧的标题。因此,在本例中,列为:

C11.X
C11.n.ENSEMBLE.COVERAGE
C11.n.ENSEMBLE.RECALL

C12.X
C12.n.ENSEMBLE.COVERAGE
C12.n.ENSEMBLE.RECALL

C13.X
C13.n.ENSEMBLE.COVERAGE
C13.n.ENSEMBLE.RECALL

C14.X
C14.n.ENSEMBLE.COVERAGE
C14.n.ENSEMBLE.RECALL


有人能推荐一种优雅的方法来重命名这样的列吗?

下面是一个使用iris数据集的可复制示例:

# produce a named list of data.frames as sample data:
dflist <- split(iris, iris$Species)
# store the list element names:
n <- names(dflist)
# rename the elements:
Map(function(df, vec) setNames(df, paste(vec, names(df), sep = ".")), dflist, n)
#生成数据的命名列表。帧作为示例数据:

dflist是有意义的。唯一的问题是,最终的“映射”似乎不会更改dflist中的名称,但它会将正确的dflist输出到控制台。@BarneyC,正确。使用
dflist Duh!这是漫长的一天。非常感谢。很好地工作。@BarneyC,一个选项是:
Map(function(df,vec)setNames(df,c(names(df)[1],paste(vec,names(df)[1],sep=“.”)),dflist,n)
@BarneyC,欢迎并很高兴它有帮助。也许它可以帮助您研究
?Map
的帮助文件(请记住
Map
mapply(…,simplify=FALSE)
# produce a named list of data.frames as sample data:
dflist <- split(iris, iris$Species)
# store the list element names:
n <- names(dflist)
# rename the elements:
Map(function(df, vec) setNames(df, paste(vec, names(df), sep = ".")), dflist, n)