2011-06-05 11 views
33

द्वारा डेटा फ्रेम को सॉर्ट करने के लिए कैसे करें मुझे दिनांक में डेटा फ्रेम को क्रमबद्ध करने की आवश्यकता है। तिथियां सभी "dd/mm/yyyy" के रूप में हैं। तिथियां तीसरे कॉलम में हैं। कॉलम हेडर वी 3 है। मैंने देखा है कि कॉलम द्वारा डेटा फ्रेम को सॉर्ट करना है और मैंने देखा है कि स्ट्रिंग को दिनांक मान में कैसे परिवर्तित करें। डेटा फ्रेम को तिथि के अनुसार क्रमबद्ध करने के लिए मैं दोनों को गठबंधन नहीं कर सकता।दिनांक

उत्तर

88

मानते हुए अपने डेटा फ्रेम d नाम पर है,

d[order(as.Date(d$V3, format="%d/%m/%Y")),] 

, मेरे ब्लॉग पोस्ट, Sorting a data frame by the contents of a column पढ़ें कि अगर कोई मतलब नहीं है।

+0

@ 182Much काम किया पूरी तरह से पहली बार। बहुत धन्यवाद – John

+0

@ जॉन उत्तर देने के बारे में कैसे? :) –

+0

@ प्रसाद चालासानी मुझे खुशी होगी, अगर मुझे पता था कि – John

13

यदि आप अवरोही क्रम के साथ तिथियों को सॉर्ट करना चाहते हैं तो माइनस साइन तिथियों के साथ काम नहीं करता है।

out <- DF[rev(order(as.Date(DF$end))),] 

हालांकि आप एक सामान्य उद्देश्य समारोह के साथ समान प्रभाव डाल सकते हैं: rev()। इसलिए, आप संशोधन और क्रम को मिश्रण करते हैं जैसे:

#init data 
DF <- data.frame(ID=c('ID3', 'ID2','ID1'), end=c('4/1/09 12:00', '6/1/10 14:20', '1/1/11 11:10') 
#change order 
out <- DF[rev(order(as.Date(DF$end))),] 

आशा है कि इससे मदद मिलेगी।

3

तुम सिर्फ आर आदि में नवीनतम करने के लिए सबसे पुराना से दिनांक पुनर्व्यवस्थित करने के लिए चाहते हैं, तो आप हमेशा कर सकते हैं:

dataframe <- dataframe[nrow(dataframe):1,] 

यह मेरे अंदर और बाहर एक्सेल से सिर्फ याहू वित्त डेटा पर तरह के लिए निर्यात सहेज लिया जाता है।

11

आजकल, यह लुब्र्रिडेट और डिपर पुस्तकालयों का उपयोग करने के लिए सबसे कुशल और आरामदायक है।

d$V3 <- lubridate::dmy(d$V3) 
dplyr::arrange(d, V3) 
0

एक ही रास्ता मैं स्रोत (mm-dd-yyyy HH-MM-एसएस PM/AM) में एक अमेरिकी प्रारूप के माध्यम से, घंटे के साथ काम करने के लिए मिला ...

df_dataSet$time <- as.POSIXct(df_dataSet$time , format = "%m/%d/%Y %I:%M:%S %p" , tz = "GMT") 
class(df_dataSet$time) 
df_dataSet <- df_dataSet[do.call(order, df_dataSet), ] 
संबंधित मुद्दे