2013-06-05 41 views
4

您可以重置在数据帧的rownames列表运行[R lapply上dataframes复位rownames

>rownames(df) <- NULL 

我有dataframes的列表,并希望在每一个数据帧的所有rownames重置在列表中,我尝试过

>newlist <- llply(mylist, function(df) { rownames(df) <- NULL }) 

Bu tit不起作用,返回一个NULLS列表并且原始值保持不变。

回答

7

这是一个基本功能lapply;你不需要加载plyr。你还需要确保你的匿名函数返回一些东西。

df1 <- data.frame(a=1:10) 
rownames(df1) <- letters[1:10] 

df2 <- data.frame(b=1:10) 
rownames(df2) <- LETTERS[1:10] 

mylist <- list(df1,df2) 

mylist <- lapply(mylist,function(DF) {rownames(DF) <- NULL; DF}) 
+0

+1如果你想成为一个小更简洁,你可以写'lapply(MYLIST,\'rownames < - \',NULL)' –

3

使用rownames<-

newlist <- lapply(mylist, "rownames<-", NULL) 
+0

这没有按” t看起来与罗兰的回答或我的随后的评论是根据他的回答不同(除了化妆品)。 –

+0

没有注意到你的评论。这一个确实使用双引号:) –

+0

大声笑。哦好吧+1! –