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)