मेरे पास एक वर्ष की अवधि में प्रति घंटा मौसम स्टेशन डेटा के साथ डेटा फ़्रेम की एक सूची है। मैं इन्हें डेटा फ्रेम में विभाजित करना चाहता हूं जहां प्रत्येक डेटा फ्रेम में सभी मौसम स्टेशनों से एक ही घंटे के समय के लिए डेटा होता है। तो एक साल के लिए, वह 24 (घंटे) * 365 (दिन) = 8760 डेटा फ़्रेम होगा। इस तरह मैं एक विशिष्ट घंटे के लिए सभी मौसम स्टेशनों के डेटा का उपयोग करके प्लॉट बना सकता हूं।

यह मेरा दृष्टिकोण है जिसकी गणना करने में बहुत लंबा समय लगता है। मेरे पास लगभग ३०० मौसम स्टेशनों के लिए एक वर्ष का प्रति घंटा डेटा है, इसलिए यह बहुत अधिक डेटा है।

list_of_station_df: समय श्रृंखला स्टेशन डेटा फ़्रेम की सूची (प्रति घंटा)

list_of_all_hourly_station_df: डेटा फ़्रेम की सूची जहां प्रत्येक df में उस घंटे के लिए सभी मौसम स्टेशनों का डेटा होता है (प्रत्येक पुनरावृत्ति में इसे जोड़ते रहें) जिसमें अंतिम परिणाम होता है

# Start by adding the hourly df's for the first station
list_of_all_hourly_station_df = split(list_of_station_df[[1]], list_of_station_df[[1]]$time)

for(station_df in list_of_station_df[-1]) {

  # Get a list of hourly df's for this station (each df will have one row)
  list_of_hourly_station_df <- split(station_df, station_df$time)

  # Merge our list with all the previous hourly data with the above
  list_of_all_hourly_station_df <- mapply(rbind, list_of_all_hourly_station_df, 
  list_of_hourly_station_df, SIMPLIFY=FALSE)

 }

यह तब काम करता है जब मैं केवल कुछ स्टेशनों यानी for(station_df in list_of_station_df[2:5]) पर पुनरावृति करता हूं

लेकिन जब मैं इसे सभी स्टेशनों के लिए चलाने की कोशिश करता हूं तो इसमें काफी समय लगता है। उम्मीद कर रहा था कि कोई उपरोक्त के कम्प्यूटेशनल समय को छोटा कर पाएगा। शुक्रिया

0
Oamar Kanji 10 फरवरी 2021, 11:45
मेरा मानना ​​​​है कि आपके सभी डेटा फ़्रेम को एक एकल डेटा फ़्रेम में परिवर्तित करना और समय को फ़िल्टर करना/सबसेट करना इस पूरी प्रक्रिया को बहुत आसान बना देगा।
 – 
Mohan Govindasamy
10 फरवरी 2021, 11:56

1 उत्तर

सबसे बढ़िया उत्तर

आमतौर पर यह बेहतर होगा कि आप अपने सभी डेटा को एक डेटाफ़्रेम में ही रखें।

combine_df <- do.call(rbind, list_of_station_df)

आपको ज़्यादातर काम combine_df के साथ करने में सक्षम होना चाहिए, यहां तक ​​कि प्रति घंटा डेटाफ़्रेम प्राप्त करना भी।

list_of_all_hourly_station_df <- split(combine_df, format(combine_df$time, '%Y-%m-%d %H'))

list_of_all_hourly_station_df में सभी स्टेशनों को मिलाकर वर्ष के प्रत्येक घंटे के लिए एक डेटाफ़्रेम होगा।

1
Ronak Shah 10 फरवरी 2021, 12:02