मेरे पास एक डेटा फ्रेम है जो इस तरह दिखता है:
Month GSI
1993.01 -0.57567056
1993.02 -1.15549239
1993.03 -1.00353071
1993.04 -0.10698880
1993.05 -0.31903591
1993.06 0.30361638
1993.07 1.24528915
1993.08 0.85104370
1993.09 1.24680092
1993.10 1.42521406
जैसा कि आप देख सकते हैं, "माह" कॉलम "वर्ष.माह" प्रारूप में एक तारीख है। मैं इस कॉलम को पारंपरिक "%Y-%m" प्रारूप में पुन: स्वरूपित करना चाहता हूं ताकि डेटा फ्रेम कुछ इस तरह दिखे:
Date GSI
1993-01 -0.57567056
1993-02 -1.15549239
1993-03 -1.00353071
1993-04 -0.10698880
1993-05 -0.31903591
1993-06 0.30361638
1993-07 1.24528915
1993-08 0.85104370
1993-09 1.24680092
1993-10 1.42521406
दिनांक कॉलम के रूप में पहचाने जाने योग्य होने के लिए मैं इस कॉलम के प्रारूप को बदलने के बारे में कैसे जा सकता हूं? वर्तमान में, "माह" कॉलम का वर्ग संख्यात्मक है।
0
Jamie_B
25 अक्टूबर 2021, 23:03
2 जवाब
सबसे बढ़िया उत्तर
आप रेगुलर एक्सप्रेशन में समूहों को कैप्चर करने के साथ sub
का उपयोग कर सकते हैं:
df$Month <- sub("^(\\d{4})\\.(\\d{2})$", "\\1-\\2", format(df$Month, 2))
df
#> Month GSI
#> 1 1993-01 -0.5756706
#> 2 1993-02 -1.1554924
#> 3 1993-03 -1.0035307
#> 4 1993-04 -0.1069888
#> 5 1993-05 -0.3190359
#> 6 1993-06 0.3036164
#> 7 1993-07 1.2452892
#> 8 1993-08 0.8510437
#> 9 1993-09 1.2468009
#> 10 1993-10 1.4252141
इनपुट डेटा
df <- structure(list(Month = c(1993.01, 1993.02, 1993.03, 1993.04,
1993.05, 1993.06, 1993.07, 1993.08, 1993.09, 1993.1), GSI = c(-0.57567056,
-1.15549239, -1.00353071, -0.1069888, -0.31903591, 0.30361638,
1.24528915, 0.8510437, 1.24680092, 1.42521406)), class = "data.frame", row.names = c(NA,
-10L))
df
#> Month GSI
#> 1 1993.01 -0.5756706
#> 2 1993.02 -1.1554924
#> 3 1993.03 -1.0035307
#> 4 1993.04 -0.1069888
#> 5 1993.05 -0.3190359
#> 6 1993.06 0.3036164
#> 7 1993.07 1.2452892
#> 8 1993.08 0.8510437
#> 9 1993.09 1.2468009
#> 10 1993.10 1.4252141
1
Allan Cameron
25 अक्टूबर 2021, 23:22
यह पूरी तरह से काम किया, बहुत बहुत धन्यवाद!
– Jamie_B
25 अक्टूबर 2021, 23:21
lubridate
पैकेज का उपयोग करें।
library(dplyr)
library(lubridate)
df <- transmute(df, date = ym(Month))
# if you don't know dplyr, use:
df$date <- ym(df$Month)
ध्यान दें कि यह समाधान परिणाम को POSIXct (दिनांक) स्वरूपित चर में भी बाध्य करता है। ट्रांसम्यूट उत्परिवर्तित और हटाता है और महीना चर।
lubridate
आर में दिनांक (और समय) डेटा के साथ काम करने के लिए स्वर्ण मानक पैकेज है। चीटशीट खोजें यहां.
1
bash1000
25 अक्टूबर 2021, 23:22