2015-09-25 67 views
1

假設我有一個列表對象等類如何檢查多個R對象的相同?

set.seed(123) 
df <- data.frame(x = rnorm(5), y = rbinom(5,2,0.5)) 
rownames(df) <- LETTERS[1:5] 
ls <- list(df1 = df, df2 = df, df3 = df) 

我的問題是如何快速檢查行名稱在在ls的三個要素(數據幀)相同。

+3

只是一個註釋,'ls()'指的是基數爲R的函數。小心使用它作爲對象在這裏 – Chris

回答

3

您可以嘗試

all(sapply(ls, rownames) == rownames(ls[[1]])) 

要檢查的第i行的唯一名字,你可以修改這

all(sapply(ls, rownames)[i, ] == rownames(ls[[1]])[i]) 
+0

Thanks @konvas。如何檢查rownames或某些列而不是整個元素?這是我的問題。 –

1

你可以列名的列表用:

Map(rownames, ls) 

所以你可以檢查所有的數據幀有相同的rownames檢查row.names向量只有一個唯一值:

length(unique(Map(rownames, ls))) == 1 
相關問題