我有一個數據幀,看起來像這樣的所有元素:提取物行名稱的基礎上,在一排小於某一值
a <- c(1.2,1.19,1.1,1.09,1.09)
b <- c(1.2, 1.18,1.12,1.11, 1.09)
d<- data.frame(a,b)
rownames(d) <- c('450','500','899','1004','1112')
a b
450 1.20 1.20
500 1.19 1.18
899 1.10 1.12
1004 1.09 1.11
1112 1.09 1.09
我想寫的是將一個簡短的函數或一個班輪返回該行的所有值(在此例中爲值爲a
和b
)的行的行名是全部小於值1.1
。該數據框的最後一行只滿足該條件,行名稱爲1112
。請注意,該解決方案必須進行推廣,以便可以對更多列和更多行的數據幀進行操作。
一種替代'row.names(d)[ rowSums(d <1.1)== ncol(d)]'應該更有效率,因爲它不必首先對數據框進行子集劃分? – Psidom
@Psidom有趣的選擇。可能值得檢查是否有差異。邏輯子集通常很「快」,我懷疑這是在你的情況下「引擎蓋下」完成的,但我不確定。 – RHertel
或'row.names(d)[rowSums(d> = 1.1)== 0L]' –