R Academy · पाठ

String कॉलम के लिए separate() और unite()

कई जानकारी-खंडों वाले कॉलम मानों को विभाजित और मिलाएँ।

पाठ 3, कुल 4 में से13 चरण

String कॉलम के लिए separate() और unite(), CoddyKit पर R Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह R Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्ट्रिंग कॉलमों को विभाजित और संयोजित करना

कच्चे डेटा में अक्सर एक ही कॉलम में कई सूचनाएँ ठूँस दी जाती हैं (जैसे, '2024-03-15' में वर्ष, महीना और दिन शामिल हैं)। tidyr के separate() और unite() फ़ंक्शन एक कॉलम को कई कॉलमों में विभाजित करते हैं या कई कॉलमों को एक में जोड़ते हैं।

library(tidyr)

# Date stored as a single string column
df <- data.frame(
  id = 1:4,
  date = c('2024-01-15','2024-03-22','2023-11-08','2024-06-30'),
  value = c(100, 200, 150, 175)
)

print(df)

separate() — एक कॉलम को कई में विभाजित करना

separate(df, col, into, sep) किसी विभाजक का उपयोग करके कैरेक्टर कॉलम को कई नए कॉलमों में विभाजित करता है। into तर्क नए कॉलमों के नाम देता है; sep सीमांकक है (डिफ़ॉल्ट: कोई भी गैर-अक्षरांकीय वर्ण)।

library(tidyr)

df <- data.frame(
  id = 1:4,
  date = c('2024-01-15','2024-03-22','2023-11-08','2024-06-30')
)

# Split 'date' into year, month, day
separate(
  df,
  col = date,
  into = c('year','month','day'),
  sep = '-'
)

convert तर्क के साथ separate()

डिफ़ॉल्ट रूप से separate() कैरेक्टर कॉलम बनाता है। नए कॉलमों को सबसे उपयुक्त प्रकार (पूर्णांक, संख्यात्मक, तार्किक) में अपने-आप बदलने के लिए convert = TRUE सेट करें। यह विशेष रूप से वर्ष और महीने वाले कॉलमों के लिए उपयोगी है।

library(tidyr)

df <- data.frame(
  event = c('2024-1','2024-2','2023-12'),
  score = c(85, 90, 78)
)

result <- separate(
  df,
  col = event,
  into = c('year','month'),
  sep = '-',
  convert = TRUE
)

print(result)
cat('year type:', class(result$year), '\n')
cat('month type:', class(result$month))

remove = FALSE के साथ separate()

डिफ़ॉल्ट रूप से separate() मूल कॉलम हटा देता है। उसे नए विभाजित कॉलमों के साथ बनाए रखने के लिए remove = FALSE सेट करें। जब आप विभाजन की जाँच करना या मूल कॉलम को संदर्भ के लिए रखना चाहते हों, तब यह उपयोगी है।

library(tidyr)

df <- data.frame(
  full_code = c('US-CA-001','US-TX-002','UK-LDN-003')
)

separate(
  df,
  col = full_code,
  into = c('country','state','code'),
  sep = '-',
  remove = FALSE   # Keep original column
)

निश्चित स्थानों पर separate()

सीमांकक के बजाय, sep में पूर्णांकों का वेक्टर देकर आप निश्चित वर्ण-स्थानों पर विभाजन कर सकते हैं। धनात्मक पूर्णांक बाएँ से गिने जाते हैं; ऋणात्मक पूर्णांक दाएँ से गिने जाते हैं।

library(tidyr)

# Product code: first 3 chars = category, next 4 = id
df <- data.frame(
  code = c('ABC1234','XYZ5678','DEF9012'),
  qty = c(10, 20, 15)
)

separate(
  df,
  col = code,
  into = c('category','product_id'),
  sep = 3    # Split after position 3
)

unite() — कॉलमों को एक में संयोजित करना

unite(df, col, ..., sep) कई कॉलमों को एक कैरेक्टर कॉलम में जोड़ता है। df के बाद पहला तर्क नए कॉलम का नाम होता है, उसके बाद जोड़े जाने वाले कॉलम और फिर विभाजक स्ट्रिंग आती है।

library(tidyr)

df <- data.frame(
  first = c('Alice','Bob','Carol'),
  last = c('Smith','Jones','White'),
  score = c(85, 90, 78)
)

unite(
  df,
  col = 'full_name',
  first, last,
  sep = ' '
)

remove = FALSE के साथ unite()

separate() की तरह, unite() भी डिफ़ॉल्ट रूप से स्रोत कॉलम हटा देता है। मूल कॉलमों को नए संयोजित कॉलम के साथ बनाए रखने के लिए remove = FALSE सेट करें। जब आपको दोनों रूप चाहिए हों, तब यह उपयोगी है।

library(tidyr)

df <- data.frame(
  year = c(2024, 2024, 2023),
  month = c(1, 3, 12),
  day = c(15, 22, 8)
)

unite(
  df,
  col = 'date_str',
  year, month, day,
  sep = '-',
  remove = FALSE
)

कुंजियाँ बनाने के लिए unite()

unite() का एक सामान्य उपयोग कई पहचानकर्ता कॉलमों को मिलाकर संयुक्त कुंजियाँ बनाना है। उन तालिकाओं को जोड़ने से पहले यह उपयोगी है, जिन्हें कई फ़ील्डों से बनी साझा कुंजी की आवश्यकता होती है।

library(tidyr)
library(dplyr)

orders <- data.frame(
  year = c(2024, 2024, 2023),
  region = c('East','West','East'),
  seq_num = c(1, 1, 2)
)

orders_keyed <- orders %>%
  unite(col = 'order_key', year, region, seq_num, sep = '_')

print(orders_keyed)

separate_rows() — कई पंक्तियों में विभाजित करना

separate_rows(df, col, sep) कई मानों वाले सेल को अलग-अलग पंक्तियों में विभाजित करता है। यह separate() से अलग है, जो कॉलमों में विभाजन करता है। जब किसी सेल में कॉमा से अलग की गई मदों की सूची हो, तब यह उपयोगी है।

library(tidyr)

# Tags stored as comma-separated values in one cell
df <- data.frame(
  id = 1:3,
  title = c('Intro to R','Data Viz','ML Basics'),
  tags = c('r,beginner','r,ggplot,visualization','r,ml,modeling')
)

separate_rows(df, tags, sep = ',')

separate() और unite() को शृंखलाबद्ध करना

दिनांक स्ट्रिंगों को नए रूप में व्यवस्थित करने, असंगत प्रारूपों को ठीक करने या मौजूदा कॉलमों से नए संयुक्त पहचानकर्ता बनाने के लिए आप separate() और unite() को पाइपलाइन में शृंखलाबद्ध कर सकते हैं।

library(tidyr)
library(dplyr)

# Reformat date from YYYY-MM-DD to DD/MM/YYYY
df <- data.frame(
  id = 1:3,
  date = c('2024-01-15','2024-03-22','2023-11-08')
)

df %>%
  separate(date, into=c('year','month','day'), sep='-') %>%
  unite(col='date_eu', day, month, year, sep='/')

अतिरिक्त या अनुपलब्ध हिस्सों को संभालना

जब into कॉलमों से अधिक हिस्से हों, तब separate() के extra तर्क का उपयोग करें: 'warn' (डिफ़ॉल्ट), 'drop' (अतिरिक्त हिस्से हटाएँ), या 'merge' (अंतिम हिस्से को बिना विभाजित किए रखें)। इसी तरह, fill कम हिस्सों को संभालता है: 'warn', 'right' या 'left'।

library(tidyr)

# Inconsistent data: some rows have 2 parts, some have 3
df <- data.frame(
  code = c('A-1','B-2-extra','C-3'),
  value = c(10, 20, 30)
)

# 'merge' keeps the last piece unsplit
separate(df, code, into=c('prefix','suffix'), sep='-',
         extra='merge')

त्वरित जाँच

जब किसी कॉलम में 'tag1,tag2,tag3' जैसे कॉमा से अलग किए गए मान हों और प्रत्येक टैग के लिए एक पंक्ति बनानी हो, तो आप किस फ़ंक्शन का उपयोग करेंगे?

पुनरावृत्ति: separate() और unite()

separate() और unite() के मुख्य बिंदु:

  • separate(col, into, sep) किसी कॉलम को सीमांकक या स्थान के आधार पर कई कॉलमों में विभाजित करता है
  • convert = TRUE — विभाजन के परिणामों का प्रकार अपने-आप बदलता है
  • remove = FALSE — दोनों फ़ंक्शन में मूल कॉलम बनाए रखता है
  • unite(col, ..., sep) — कई कॉलमों को एक स्ट्रिंग कॉलम में जोड़ता है
  • separate_rows(col, sep) — सीमांकित मानों को कई पंक्तियों में विभाजित करता है, कॉलमों में नहीं
  • extra और fill तर्क असंगत विभाजन परिणामों को संभालते हैं
library(tidyr)
library(dplyr)

df <- data.frame(
  id = 1:3,
  datetime = c('2024-01-15 09:30','2024-03-22 14:15','2023-11-08 11:45')
)

df %>%
  separate(datetime, into=c('date','time'), sep=' ') %>%
  separate(date, into=c('year','month','day'), sep='-', convert=TRUE) %>%
  separate(time, into=c('hour','minute'), sep=':', convert=TRUE)
शुरुआत निःशुल्क

एआई शिक्षक के साथ R सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
43
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “String कॉलम के लिए separate() और unite()” पाठ निःशुल्क है?

हाँ — R Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “String कॉलम के लिए separate() और unite()” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“String कॉलम के लिए separate() और unite()” में मैं क्या सीखूँगा?

कई जानकारी-खंडों वाले कॉलम मानों को विभाजित और मिलाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या R Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर R Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“String कॉलम के लिए separate() और unite()” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस R Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर R Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. pivot_longer() से Wide से Long
  2. pivot_wider() से Long से Wide
  3. String कॉलम के लिए separate() और unite()
  4. डेटा फ़्रेम को Nesting और Unnesting करना
← R Academy पर वापस जाएँ