假設我有一個列表對象等類如何檢查多個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
的三個要素(數據幀)相同。
假設我有一個列表對象等類如何檢查多個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
的三個要素(數據幀)相同。
您可以嘗試
all(sapply(ls, rownames) == rownames(ls[[1]]))
要檢查的第i行的唯一名字,你可以修改這
all(sapply(ls, rownames)[i, ] == rownames(ls[[1]])[i])
Thanks @konvas。如何檢查rownames或某些列而不是整個元素?這是我的問題。 –
你可以列名的列表用:
Map(rownames, ls)
所以你可以檢查所有的數據幀有相同的rownames檢查row.names向量只有一個唯一值:
length(unique(Map(rownames, ls))) == 1
只是一個註釋,'ls()'指的是基數爲R的函數。小心使用它作爲對象在這裏 – Chris