2016-06-21 70 views
0

我有一個數據框,我只想運行一個函數,如果我知道在某些列(比如有11列,我想知道這4上他們)有多個價值(例如,他們不是全部2)。是否有任何特定的功能來找出這個問題,或者我將不得不遍歷每一列並檢查?R:檢查一列是否有多個值

回答

2

我們可以使用sapply遍歷列,讓每列中的unique元素,檢查是否length大於1.給出了可用於如果需要子集化數據集的邏輯載體。

i1 <- sapply(df1, function(x) length(unique(x)) >1) 
df1[i1] 

或者另一種選擇子集列將是filter

Filter(var, df1) 
+1

謝謝!這比我所做的更有效率。 –

+0

不應該是[dupe](http://stackoverflow.com/questions/31409269/returning-only-column-values-that-have-more-than-1-unique-values-in-r)? ;-) – Jaap

+0

@ProcrastinatusMaximus它可能是,但這裏的OP似乎只想要索引而不是列的子集。所以,我懷疑這是一個騙局。 – akrun

0

對於每一列運行length(unique(x))。這將打印唯一列的數量。如果您提供了更多信息,則可以嵌套到根據length(unique(x))的總和決定是否運行的函數中。