2015-09-10 3 views
5

के बीच होना चाहिए मैं नीचे की तरह कुछ डेटा है:tidyr साथ इकट्ठा: स्थिति 0 और एन त्रुटि

x.row10 %>% gather(Year, Val, -names) 
:

x.row10 <- setNames(data.frame(letters[1:3],1:3,2:4,3:5,4:6,5:7,6:8,7:9), 
        c("names",2004:2009,2012)) 
# names 2004 2005 2006 2007 2008 2009 2012 
#1  a 1 2 3 4 5 6 7 
#2  b 2 3 4 5 6 7 8 
#3  c 3 4 5 6 7 8 9 

अब मैं लेखन से tidyr पैकेज से लंबे समय से उन्हें बना सकते हैं gather() साथ

लेकिन जब मैं

x.row10 %>% gather(Year, Val, c(2004:2009,2012)) 

जो मेरे सहज विकल्प है का उपयोग करें, मैं त्रुटि मीटर मिल सार

Error: Position must be between 0 and n

यह कैसे और कैसे हल किया जा सकता है?

+4

में' '' df%>% ('2009',' 2012') वर्ष, वैल, ग ('2004') इकट्ठा के रूप में बैकटिक जोड़े नाम। 'इकट्ठा' सोचता है कि आप कॉलम इंडेक्स का चयन करने की कोशिश कर रहे हैं जो सीमा से बाहर हैं। –

+0

मुझे एक त्रुटि संदेश मिलता है: त्रुटि: सभी चयन() इनपुट को पूर्णांक कॉलम स्थितियों को हल करना होगा। निम्नलिखित नहीं हैं: * सी ("2004": "200 9", "2012") बैकटिक्स – uncool

+2

का उपयोग करते समय यह मेरे लिए काम करता है। 'df' होना चाहिए 'x.row10' ofcourse –

उत्तर

4
x.row10 %>% gather(Year, Val, c(2:8)) 
+2

या तो 'x.row10' या' df', दोनों नहीं। –

+1

@ स्टीवन बेउप्रे अच्छा बिंदु, धन्यवाद – HubertL

3

प्रश्न हल के रूप में चिह्नित किया गया है, लेकिन मुझे लगता है कि यह मेरे उत्तर को पोस्ट करने के लिए उपयोगी हो सकता है। जिस तरह से डेविड अरेनबर्ग सही है। काम करने के लिए आपको बैकस्टिक्स की आवश्यकता है। आप उद्धरण चिह्नों टिप्पणी में उपयोग uncool के रूप में नहीं हुआ है, तो आप उसके जैसे एक ही त्रुटि मिलती है:

Error: All select() inputs must resolve to integer column positions. 
The following do not: 
* c("2004":"2009", "2012") 

जर्मन keybord उपयोगकर्ता के लिए: आप न (कुछ मिनट पहले मेरे जैसे :-)) जानते हैं कि कैसे करने के लिए तो प्रकार backstick: `` `या का उपयोग वैध कॉलम:

"Shift + the key on the right side of ß" and after that "spacebar".

संबंधित मुद्दे