2016-02-16 11 views
5

मैं अपने राउनम्स के आधार पर सूची में प्रत्येक डेटाफ्रेम के लिए वर्ष कॉलम बनाना चाहता हूं। SO पर सवाल यह प्रश्न has been asked before लेकिन दुर्भाग्य से उत्तर मदद नहीं करता है। तो, है ऐसा करने का कोई तरीका है?डेटाफ्रेम की सूची में कॉलम के रूप में रोना

mylist <- list(structure(list(a = 1:10), .Names = "a", row.names = 1991:2000, class = "data.frame"), 
      structure(list(a = 1:10), .Names = "a", row.names = 1992:2001, class = "data.frame")) 

अपेक्षित परिणाम:

lapply(mylist, function(df) transform(df, year = rownames(df))) 

बस मस्ती के लिए, आप भी dplyr केइस्तेमाल कर सकते हैं:

[[1]] 
     a year 
1991 1 1991 
1992 2 1992 
1993 3 1993 
1994 4 1994 
1995 5 1995 
1996 6 1996 
1997 7 1997 
1998 8 1998 
1999 9 1999 
2000 10 2000 

[[2]] 
     a year 
1992 1 1992 
1993 2 1993 
1994 3 1994 
1995 4 1995 
1996 5 1996 
1997 6 1997 
1998 7 1998 
1999 8 1999 
2000 9 2000 
2001 10 2001 
+0

यह क्यों मदद नहीं करता है? आप किस प्रश्न का संदर्भ दे रहे हैं? – franklin

उत्तर

2

हम Map

Map(cbind, mylist, year= lapply(mylist, rownames)) 
+1

मुझे लगता है कि 'Map' + 'lapply' के साथ आपका मूल उत्तर कम कुशल होगा –

+0

@ डॉकेंडोडिस्किमस मैंने नहीं देखा कि आपने एक समान उत्तर पोस्ट किया है। मैं इसे हटा दूंगा। – akrun

4

यहाँ उपयोग कर सकते हैं एक और विकल्प हैफ़ंक्शन:

lapply(mylist, dplyr::add_rownames, 'year') 
संबंधित मुद्दे