2012-09-11 15 views
6

Let साथ डेटा फ्रेम स्तंभ निकालने का तरीका कहते हैं कि मैं आर में निम्न डेटा फ्रेम:एकल मान

df1 <- data.frame(Item_Name = c("test1","test2","test3"), D_1=c(1,0,1), 
        D_2=c(1,1,1), D_3=c(11,3,1)) 

मैं एक समारोह है कि कोई विचरण (जैसे इस में साथ स्तंभ हटाना होगा बनाना चाहेंगे मामला, यह कॉलम D_2 को हटा देगा क्योंकि इसमें केवल 1 मान है)

मुझे पता है कि मैं इसे हाथ से देख सकता हूं, लेकिन असल में मेरा डेटा बहुत बड़ा है और मैं इसे स्वचालित करना चाहता हूं। कोई उपाय?

उत्तर

9

Filter यहां एक उपयोगी कार्य है। मैं केवल उन लोगों के लिए फ़िल्टर करूंगा जहां 1 से अधिक अद्वितीय मूल्य हैं।

अर्थात

Filter(function(x)(length(unique(x))>1), df1) 

## Item_Name D_1 D_3 
## 1  test1 1 11 
## 2  test2 0 3 
## 3  test3 1 1 
8

आप कर सकते हैं:

df1[c(TRUE, lapply(df1[-1], var, na.rm = TRUE) != 0)] 
# Item_Name D_1 D_3 
# 1  test1 1 11 
# 2  test2 0 3 
# 3  test3 1 1 

जहां lapply टुकड़ा बताता है कि चर कुछ भिन्नता है:

lapply(df1[-1], var, na.rm = TRUE) != 0 
# D_1 D_2 D_3 
# TRUE FALSE TRUE 
संबंधित मुद्दे