dplyr
select
समारोह एक डेटा फ्रेम से विशिष्ट स्तंभ का चयन करता है। डेटा के किसी विशेष कॉलम में अद्वितीय मान वापस करने के लिए, आप group_by
फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण के लिए: यह दोनों डेटा फ्रेम में सभी स्तंभों कि dplyr
रिटर्न (और बीच में से स्तंभ x
का चयन करता है
dat %>%
group_by(x) %>%
summarise() %>%
select(unique.x=x)
:
library(dplyr)
# Fake data
set.seed(5)
dat = data.frame(x=sample(1:10,100, replace=TRUE))
# Return the distinct values of x
dat %>%
group_by(x) %>%
summarise()
x
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
आप निम्नलिखित जोड़ सकते हैं आप स्तंभ नाम बदलना चाहते हैं बेशक इस मामले में केवल एक कॉलम है) और इसका नाम बदलकर unique.x
पर कर दिया गया है।
आप पर सीधे unique(dat$x)
के साथ अद्वितीय मान भी प्राप्त कर सकते हैं। dplyr 0.3 इस में आसानी से distinct()
पद्धति का उपयोग करके प्राप्त किया जा सकता
set.seed(5)
dat = data.frame(x=sample(1:10,100, replace=TRUE),
y=sample(letters[1:5], 100, replace=TRUE))
dat %>%
group_by(x,y) %>%
summarise() %>%
select(unique.x=x, unique.y=y)
यह काम करता है यदि डेटा फ्रेम पहले से ही आर में है, लेकिन यदि आप डीबी कनेक्शन (यानी 'src_postgres() ') के माध्यम से सीधे डेटाबेस पर क्वेरी करने का प्रयास कर रहे हैं तो यह काम नहीं करता है। यह रिपोर्ट करता है: 'त्रुटि: SQL' – djhocking
के साथ निर्दिष्ट कॉलम पर केवल विशिष्ट गणना नहीं कर सकता है src_postgres() और dplyr http://stackoverflow.com/questions/21592266/i-cannot-connect- postgresql-schema-table-with-dplyr-package –
ध्यान दें कि जिस तरह से 'विशिष्ट() 'काम dplyr 0.5 में बदल गया है। डिफ़ॉल्ट रूप से 'विशिष्ट() 'अब केवल उन कॉलम को लौटाता है जिन्हें तर्क के रूप में उपयोग किया जाता है' विशिष्ट()'। यदि आप अन्य कॉलम को बरकरार रखना चाहते हैं तो आपको अब '.keep_all = TRUE' को 'विशिष्ट()' – RoyalTS