2013-06-05 79 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! –