R Academy · पाठ

डेटा को कई फ़ॉर्मैट में लिखना

write_csv() और writexl से डेटा फ़्रेम को CSV, Excel और RDS में एक्सपोर्ट करें।

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

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

R से डेटा लिखना

डेटा पढ़ना केवल आधी प्रक्रिया है — आपको परिणाम सहेजने की भी आवश्यकता होती है। R कई आउटपुट प्रारूपों का समर्थन करता है: सार्वभौमिक अनुकूलता के लिए CSV, R ऑब्जेक्ट को ठीक उसी रूप में सुरक्षित रखने के लिए RDS, उच्च-प्रदर्शन विश्लेषण के लिए Parquet आदि। अपने पाठक वर्ग और उपयोग के उद्देश्य के आधार पर प्रारूप चुनें।

library(readr)

# Create a sample data frame to write
df <- data.frame(
  name = c('Alice','Bob','Carol'),
  score = c(85.5, 92.0, 78.3),
  grade = c('B','A','C'),
  passed = c(TRUE, TRUE, TRUE)
)

print(df)
cat('\nWe will save this in multiple formats!')

write_csv() — CSV के रूप में सहेजें

write_csv(df, 'file.csv') डेटा फ़्रेम को अल्पविराम-विभाजित फ़ाइल के रूप में सहेजता है। यह डिफ़ॉल्ट रूप से पंक्ति नाम नहीं लिखता ( write.csv() के विपरीत)। परिणाम हमेशा UTF-8 में एन्कोड किया जाता है। यह डेटा फ़्रेम को अदृश्य रूप से लौटाता है, इसलिए इसका उपयोग पाइप में किया जा सकता है।

library(readr)

df <- data.frame(
  name = c('Alice','Bob','Carol'),
  score = c(85, 92, 78)
)

# Write to /tmp for demonstration
write_csv(df, '/tmp/students.csv')

# Verify by reading back
read_csv('/tmp/students.csv', show_col_types=FALSE)

write_csv() के विकल्प

write_csv() कई विकल्प स्वीकार करता है: na='NA' यह नियंत्रित करता है कि NA कैसे लिखे जाएँ, append=TRUE मौजूदा फ़ाइल में डेटा जोड़ता है, col_names=FALSE शीर्षक को छोड़ देता है, और quote यह नियंत्रित करता है कि फ़ील्ड को कब उद्धरण चिह्नों में रखा जाए।

library(readr)

df <- data.frame(
  name = c('Alice','Bob'),
  city = c('New York','Los,Angeles'),  # Contains comma
  score = c(85, NA)
)

# na='' writes NA as empty string (common Excel convention)
write_csv(df, '/tmp/test_write.csv', na='')
cat(paste(read_lines('/tmp/test_write.csv'), collapse='\n'))

write_tsv() — टैब-विभाजित आउटपुट

write_tsv(df, 'file.tsv') डेटा को टैब-विभाजित रूप में सहेजता है। जब डेटा में अल्पविराम हों या अगली प्रणाली TSV की अपेक्षा करती हो, तब इसे प्राथमिकता दी जाती है। write_csv() के समान विकल्प।

library(readr)

df <- data.frame(
  address = c('123 Main St, NYC','456 Oak Ave, LA'),
  score = c(85, 92)
)

# TSV avoids delimiter conflict with commas in addresses
write_tsv(df, '/tmp/addresses.tsv')
cat(paste(read_lines('/tmp/addresses.tsv'), collapse='\n'))

saveRDS() — कोई भी R ऑब्जेक्ट सहेजें

saveRDS(obj, 'file.rds') किसी भी R ऑब्जेक्ट को R के मूल बाइनरी प्रारूप में डिस्क पर क्रमबद्ध रूप में सहेजता है। readRDS('file.rds') उसे ठीक उसी रूप में पुनर्स्थापित करता है — कॉलम के प्रकार, फ़ैक्टर, विशेषताएँ और यहाँ तक कि मॉडल ऑब्जेक्ट भी सुरक्षित रहते हैं। यह मनुष्यों के लिए पढ़ने योग्य नहीं है, लेकिन अलग-अलग R सत्रों के बीच पूरी तरह पोर्टेबल है।

library(readr)

df <- data.frame(
  name = c('Alice','Bob'),
  score = c(85.5, 92.0),
  grade = factor(c('B','A'), levels=c('A','B','C','D'))
)

# Save with full type preservation
saveRDS(df, '/tmp/students.rds')

# Restore exactly
df2 <- readRDS('/tmp/students.rds')
print(df2)
print(class(df2$grade))  # factor — preserved!

saveRDS() बनाम save() — मुख्य अंतर

saveRDS(obj, 'file.rds') किसी एक ऑब्जेक्ट को उसके नाम के बिना सहेजता है। readRDS() से आप उसे कोई भी नाम दे सकते हैं। save(obj1, obj2, 'file.RData') कई नामित ऑब्जेक्ट सहेजता है; load() उन्हें मूल नामों के साथ पुनर्स्थापित करता है (और मौजूदा वेरिएबल को अधिलेखित कर सकता है)।

# saveRDS: single object, flexible on load
model <- lm(mpg ~ wt, data=mtcars)
saveRDS(model, '/tmp/my_model.rds')
best_model <- readRDS('/tmp/my_model.rds')  # Any name!
cat('R-squared:', round(summary(best_model)$r.squared, 3), '\n')

# save: multiple named objects, fixed names on load
# save(model, mtcars, file='/tmp/workspace.RData')
# load('/tmp/workspace.RData')  # Restores 'model' and 'mtcars'

write_delim() — कस्टम परिसीमक

write_delim(df, file, delim='|') किसी भी परिसीमक के साथ लिखता है। जब अगली प्रणाली पाइप से विभाजित या किसी अन्य गैर-मानक प्रारूप की अपेक्षा करती हो, तब इसका उपयोग करें। write_csv() जैसी ही डेटा गुणवत्ता की गारंटियाँ लागू होती हैं।

library(readr)

df <- data.frame(
  id = 1:3,
  name = c('Alice','Bob','Carol'),
  value = c(100, 200, 150)
)

# Write pipe-delimited
write_delim(df, '/tmp/data.psv', delim='|')
cat(paste(read_lines('/tmp/data.psv'), collapse='\n'))

writexl के साथ Excel आउटपुट

writexl पैकेज (readxl का सहायक पैकेज) डेटा फ़्रेम को .xlsx प्रारूप में लिखता है: writexl::write_xlsx(df, 'file.xlsx')। कई शीट के लिए नामित सूची दें। Java या Excel इंस्टॉल करना आवश्यक नहीं है।

# writexl::write_xlsx() — example (library not always available)
# library(writexl)

df1 <- data.frame(name=c('Alice','Bob'), score=c(85,92))
df2 <- data.frame(region=c('East','West'), sales=c(100,200))

# Single sheet:
# write_xlsx(df1, '/tmp/students.xlsx')

# Multiple sheets (named list):
# write_xlsx(
#   list(students=df1, sales=df2),
#   '/tmp/report.xlsx'
# )

cat('writexl writes pure .xlsx without Java or Excel!')

arrow के साथ Parquet फ़ाइलें

Apache Parquet बड़े डेटासेट के लिए आदर्श कॉलम-आधारित भंडारण प्रारूप है: यह अच्छी तरह संपीड़ित होता है और कॉलम-आधारित प्रश्नों के लिए CSV की तुलना में बहुत तेज़ी से पढ़ा जाता है। arrow पैकेज write_parquet() और read_parquet() उपलब्ध कराता है।

# arrow::write_parquet() concept
# library(arrow)

# Large CSV -> Parquet (10-100x smaller, 10-100x faster reads)
# df <- read_csv('big_file.csv')
# write_parquet(df, 'big_file.parquet')
# df_back <- read_parquet('big_file.parquet')

# Parquet benefits:
# - Columnar: only reads columns you need
# - Compressed: ~10x smaller than CSV
# - Typed: no type re-guessing on read
# - Partitioned: split by date/region for parallel reads

cat('Parquet is the modern standard for large-scale analytics in R!')

डेटा-प्रवाह में डेटा लिखना

write_csv() और saveRDS() दोनों अपने इनपुट को अदृश्य रूप से लौटाते हैं, इसलिए डेटा-प्रवाह को बाधित किए बिना पाइप के अंदर उपयोग किए जा सकते हैं। पुनरुत्पादकता के लिए बीच के डेटा-प्रवाह में write_csv() वाला एक जाँच-बिंदु लिखने का चरण जोड़ें।

library(readr)
library(dplyr)

# Write mid-pipeline as a checkpoint
final_result <- data.frame(
  region=c('East','West','North'),
  sales=c(100,200,80)
) %>%
  mutate(pct = round(100*sales/sum(sales),1)) %>%
  {. ->> checkpoint_df; .} %>%  # Save checkpoint
  filter(sales > 90)

write_csv(checkpoint_df, '/tmp/checkpoint.csv')
print(final_result)

प्रारूप चयन मार्गदर्शिका

सही आउटपुट प्रारूप चुनना आपके लक्ष्य पर निर्भर करता है:

  • CSV/TSV: सार्वभौमिक, मनुष्यों के लिए पढ़ने योग्य, कोई भी इसे खोल सकता है
  • RDS: R से R, सभी प्रकारों और विशेषताओं को ठीक उसी रूप में सुरक्षित रखता है
  • xlsx: व्यावसायिक उपयोगकर्ता और Excel का उपयोग करने वाले
  • Parquet: बड़ा डेटा, विश्लेषणात्मक डेटा-प्रवाह, उत्पादन प्रणालियाँ
  • JSON: API, नेस्टेड/पदानुक्रमित डेटा (jsonlite::toJSON())
library(readr)

df <- data.frame(
  id = 1:5,
  value = c(10.5, 20.3, 15.7, 30.1, 25.8)
)

# CSV — universal
write_csv(df, '/tmp/data.csv')

# TSV — when commas are in data
write_tsv(df, '/tmp/data.tsv')

# RDS — R-native, type-preserving
saveRDS(df, '/tmp/data.rds')

cat('Files created:\n')
cat('CSV size:', file.size('/tmp/data.csv'), 'bytes\n')
cat('RDS size:', file.size('/tmp/data.rds'), 'bytes\n')

त्वरित जाँच

R डेटा सहेजने के लिए write_csv() की तुलना में saveRDS() का मुख्य लाभ क्या है?

पुनरावलोकन: डेटा लिखना

R से डेटा लिखने के मुख्य बिंदु:

  • write_csv(df, 'file.csv') — अल्पविराम-विभाजित, पंक्ति नामों के बिना, UTF-8
  • write_tsv(df, 'file.tsv') — टैब-विभाजित आउटपुट
  • write_delim(df, file, delim='|') — कोई भी परिसीमक
  • saveRDS(obj, 'file.rds') — बाइनरी R प्रारूप, सभी प्रकार सुरक्षित रखता है
  • readRDS('file.rds') — कोई भी नाम देकर पुनर्स्थापित करें; load() मूल नामों के साथ पुनर्स्थापित करता है
  • writexl::write_xlsx() — Excel आउटपुट, Java की आवश्यकता नहीं
  • arrow::write_parquet() — बड़े विश्लेषणात्मक डेटासेट के लिए कॉलम-आधारित प्रारूप
library(readr)

df <- data.frame(
  name = c('Alice','Bob','Carol'),
  score = c(85.5, 92.0, 78.3),
  grade = factor(c('B','A','C'))
)

# CSV: universal but loses factor
write_csv(df, '/tmp/demo.csv')
df_csv <- read_csv('/tmp/demo.csv', show_col_types=FALSE)
cat('CSV grade type:', class(df_csv$grade), '\n')  # character

# RDS: preserves factor
saveRDS(df, '/tmp/demo.rds')
df_rds <- readRDS('/tmp/demo.rds')
cat('RDS grade type:', class(df_rds$grade))  # factor
शुरुआत निःशुल्क

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

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

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

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

क्या “डेटा को कई फ़ॉर्मैट में लिखना” पाठ निःशुल्क है?

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

“डेटा को कई फ़ॉर्मैट में लिखना” में मैं क्या सीखूँगा?

write_csv() और writexl से डेटा फ़्रेम को CSV, Excel और RDS में एक्सपोर्ट करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

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

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

“डेटा को कई फ़ॉर्मैट में लिखना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. read_csv() से CSV फ़ाइलें पढ़ना
  2. TSV और निश्चित-चौड़ाई वाली फ़ाइलों का पार्सिंग
  3. readxl से Excel फ़ाइलें इम्पोर्ट करना
  4. डेटा को कई फ़ॉर्मैट में लिखना
← R Academy पर वापस जाएँ