2013-11-21 10 views
7

मेरे पास एक बहुत ही सरल डेटासेट है और मैंने तालिका के पहले कॉलम पर टेबल() करने की कोशिश की, लेकिन आर एक कैप्शन त्रुटि संदेश देता है। मैंने ऑनलाइन खोज की लेकिन यह समझ में नहीं आया कि यह क्यों होगा, क्योंकि आर मेरी मेज को एक टेबल के रूप में स्वीकार करता है ... क्या कोई सलाह दे सकता है?

मेरी उम्मीद उत्पादन:

> table(tab$V1) 
    CA 1 
    CO 1 
    OH 2 

लेकिन यह रिटर्न:

> tabraw 
    V1  V2 
1 OH Cleveland 
2 OH Columbus 
3 CO Denver 
4 CA SanFran 

> tab <- table(tabraw) 

> tab 
    V2 
V1 Cleveland Columbus Denver SanFran 
    CA   0  0  0  1 
    CO   0  0  1  0 
    OH   1  1  0  0 

> table(tab$V1) 
Error in tab$V1 : $ operator is invalid for atomic vectors 
+0

'वर्ग (टैब)' और 'str (टैब)' क्या है? – Thomas

+3

'V1' तालिका में कोई कॉलम नहीं है, यह नीचे दिए गए राउनम्स के लिए सिर्फ एक लेबल है। पहला "कॉलम" "क्लीवलैंड" के तहत एक है। यह 'टैब [, 1]' या 'टैब [, 'क्लीवलैंड'] 'के माध्यम से सुलभ है। – joran

उत्तर

6

आप

table(tabraw$V1) 
# 
# CA CO OH 
# 1 1 2 

वस्तु tab की तलाश कर रहे वर्ग तालिका की एक वस्तु है और नहीं है $ फ़ंक्शन का समर्थन करें।

तुम भी

rowSums(tab) 
# CA CO OH 
# 1 1 2 
3

साथ tab वस्तु से वांछित जानकारी प्राप्त कर सकते हैं आप के रूप में मैट्रिक्स तालिका वस्तुओं जहाँ से 2 डी वाले अपने सभी अनुक्रमण गुण (ताकि [ dim-indices ]) के वारिस हैं बारे में सोचना चाहिए:

is.matrix(tab) # returns TRUE 

यदि आपके पास 2 डी टेबल से अधिक है, तो यह स्वाभाविक रूप से सरणी वर्ग से इसके एक्सेसर फ़ंक्शंस को प्राप्त करेगा। एकमात्र (सामान्य डेटा) वर्ग जो एक्सेसर के रूप में "$" का उपयोग करती है वह सूची है (जिसमें से डेटाफ्रेम वारिस होते हैं)। प्रयास करें:

tab[ , 1] # Or 
tab[ , "Cleveland"] 

(मुझे लगता है कि मैं "$" के बारे में इतना स्पष्ट नहीं होना चाहिए था तुम्हें पता है, कि एक्सेसर के साथ कुछ भाषा वस्तुओं के तत्वों और पर्यावरण वस्तुओं का उपयोग कर सकते हैं क्योंकि वे सूची के रूप में व्यवहार करते हैं।।)

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