2015-09-10 7 views
10
> dput(test) 
structure(list(MEMORY1 = c(7.5, 6, 6, 3.5, 5, 5), MEMORY2 = c(5, 
7.5, 3, 3.5, 5, 5), MEMORY3 = c(5, 3.5, 3, 3.5, 5, 2), MEMORY4 = c(2, 
1.5, 3, 3.5, 1, 2), MEMORY5 = c(7.5, 3.5, 3, 3.5, 5, 7), MEMORY6 = c(2, 
5, 7.5, 7.5, 5, 5), MEMORY7 = c(2, 1.5, 3, 3.5, 5, 2), MEMORY8 = c(5, 
7.5, 7.5, 7.5, 5, 8)), .Names = c("MEMORY1", "MEMORY2", "MEMORY3", 
"MEMORY4", "MEMORY5", "MEMORY6", "MEMORY7", "MEMORY8"), row.names = c(NA, 
6L), class = "data.frame") 
> test 
    MEMORY1 MEMORY2 MEMORY3 MEMORY4 MEMORY5 MEMORY6 MEMORY7 MEMORY8 
1  7.5  5.0  5.0  2.0  7.5  2.0  2.0  5.0 
2  6.0  7.5  3.5  1.5  3.5  5.0  1.5  7.5 
3  6.0  3.0  3.0  3.0  3.0  7.5  3.0  7.5 
4  3.5  3.5  3.5  3.5  3.5  7.5  3.5  7.5 
5  5.0  5.0  5.0  1.0  5.0  5.0  5.0  5.0 
6  5.0  5.0  2.0  2.0  7.0  5.0  2.0  8.0 

मेरे पास डेटा.फ्रेम है, और मैं केवल पहली पंक्ति को सब्सक्राइब करना चाहता हूं। अगर मैं test[1, ] करते हैं, परिणामआर: कॉलम नामों के बिना डेटा.फ्रेम का सबसेट करना

> test[1, ] 
    MEMORY1 MEMORY2 MEMORY3 MEMORY4 MEMORY5 MEMORY6 MEMORY7 MEMORY8 
1  7.5  5  5  2  7.5  2  2  5 

मैं data.frame कैसे सबसेट है ताकि मैं स्तंभ नाम के बिना नंबर की सिर्फ एक वेक्टर मिलता है?

उत्तर

8

आप जो चाहते हैं वह डेटा.फ्रेम के बजाय एक संख्यात्मक वेक्टर है। इस के लिए, तुम सिर्फ as.numeric उपयोग कर सकते हैं रूपांतरण

> as.numeric(df[1,]) 
[1] 7.5 5.0 5.0 2.0 7.5 2.0 2.0 5.0 
6

आप unlist का उपयोग use.names=FALSE के साथ कर सकते हैं ताकि नाम के बिना केवल vector लौटा सकें।

unlist(test[1,], use.names=FALSE) 
#[1] 7.5 5.0 5.0 2.0 7.5 2.0 2.0 5.0 

test[1,] अभी भी 8 कॉलम के साथ एक data.frame है। को list के रूप में length के साथ list तत्वों (या कॉलम) के लिए माना जा सकता है। तो हम unlist का उपयोग कर सकते हैं। यह तब भी काम करता है जब आप एक से अधिक पंक्तियों से vector बना रहे हैं।

unlist(test[1:2,], use.names=FALSE) 

या @Frank के रूप में, सुझाव दिया है कि अगर हम आयाम रखकर कई पंक्तियों subsetting रहे हैं, हम NULL के नाम तय करने और matrix में बदलने का।

as.matrix(setNames(test[1:2,],NULL)) 
+1

दूसरे भाग के बारे में क्या करना है, मुझे लगता है कि है कि, "subsetting" (ओ पी के शीर्षक से) वास्तव में नहीं है, क्योंकि आयाम बदल जाते हैं। शायद 'as.matrix (सेटनाम (परीक्षण [1: 2,], न्यूल)) या गुमराह' \ 'dimnames <- \' (as.matrix (test [1: 2,]), NULL) ' – Frank

+0

@ फ्रैंक धन्यवाद। यह समझ में आता है। – akrun

+2

'as.matrix' संस्करण के लिए 'सेटनाम' का एक विकल्प उपयोगिता फ़ंक्शन 'unname' है – user295691

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