2013-03-24 6 views
8

मैं सूची के अंदर एक डेटा फ्रेम रखता हूं। फिर जब इसे वापस निकालने का प्रयास करें - मुझे इस डेटा फ्रेम के लिए सूची कुंजी के साथ प्रीफ़िक्स्ड सभी कॉलम नाम मिलते हैं, क्या डेटा फ्रेम निकालने का कोई तरीका है जैसा कि इसे प्रारंभ में पारित किया गया था?आर स्तंभ नामों में उपसर्गों के बिना सूची से डेटा फ्रेम निकालें

cols<-c("column1", "Column2", "Column3") 
df1<-data.frame(matrix(ncol = 3, nrow = 1)) 
colnames(df1)<-cols 
df1 

result<-list() 
result['df1']<-list(df1) 

newdf1<-as.data.frame(result['df1']) 
newdf1 

एक परिणाम के रूप जाओ (स्तंभ नाम DF1 लगी होती हैं):

> cols<-c("column1", "Column2", "Column3") 
> df1<-data.frame(matrix(ncol = 3, nrow = 1)) 
> colnames(df1)<-cols 
> df1 
    column1 Column2 Column3 
1  NA  NA  NA 
> 
> result<-list() 
> result['df1']<-list(df1) 
> 
> newdf1<-as.data.frame(result['df1']) 
> newdf1 
    df1.column1 df1.Column2 df1.Column3 
1   NA   NA   NA 
बेशक

, मैं मैन्युअल उपसर्गों को हटा सकते हैं, लेकिन शायद वहाँ यह करने के लिए एक उचित तरीका है। धन्यवाद!

उत्तर

15

निकालें [ बजाय [[ का उपयोग कर:

> newdf1 <- as.data.frame(result[['df1']]) 
> newdf1 
    column1 Column2 Column3 
1  NA  NA  NA 

अंतर यह है कि [ अनुरोध किया घटक (रों) युक्त एक सूची निकालता है। [[ अनुरोधित घटक को सीधे निकालता है (यानी यह सूची के उस घटक की सामग्री को पुनर्प्राप्त करता है, उस घटक वाली सूची नहीं)।

लेकिन df1 के रूप में पहले से ही एक डेटा फ्रेम, क्यों सिर्फ ऐसा नहीं है:

newdf1 <- result[['df1']] 

? आपको as.data.frame() भाग की आवश्यकता नहीं है।

+0

अच्छा, इस मामले में मुझे टाइप रूपांतरण as.data.frame() की आवश्यकता भी नहीं है क्योंकि यह पहले से ही डेटा है। फ्रेम लौटाया गया है। Thx – Volder

+0

@ वोल्डर हाँ, मैंने अभी इसे जोड़ा है। खुशी हुई यह मदद की। –

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