R प्रोजेक्ट और कार्यक्षेत्र प्रबंधन
RStudio प्रोजेक्ट बनाएँ और .RData, .Rhistory तथा .Renviron प्रबंधित करें।
R प्रोजेक्ट और कार्यक्षेत्र प्रबंधन, CoddyKit पर R Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह R Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
R कार्यक्षेत्र: .RData और .Rhistory
डिफ़ॉल्ट रूप से, जब आप R से बाहर निकलते हैं, तो यह मेमोरी में मौजूद सभी ऑब्जेक्ट वाले कार्यस्थान को कार्यशील निर्देशिका की .RData नामक छिपी हुई फ़ाइल में सहेजने के लिए पूछता है। आपके कमांड इतिहास को .Rhistory में सहेजा जाता है। अगले सत्र में ये फ़ाइलें अपने-आप लोड हो जाती हैं।
यह सुविधा पुनरुत्पादकता के लिए एक जाल भी है।
# .RData: binary snapshot of all objects in the global environment
# .Rhistory: text file of every command you typed
# See what would be saved right now:
cat('Objects that would be saved:', length(ls()), '\n')
cat('Their names:', paste(ls(), collapse = ', '))
# Workspace saving is controlled by:
# Tools -> Global Options -> General -> Save workspace (NEVER recommended)
# Or at startup: R --no-save --no-restoreऑटो-सेविंग .RData से क्यों बचें?
.RData पर निर्भर रहने का अर्थ है कि आपके परिणामों को बिल्कुल नए सिरे से पुनरुत्पादित नहीं किया जा सकता। सत्रों के बीच ऑब्जेक्ट अदृश्य रूप से जमा होते रहते हैं, पुराने चर नए चरों को छिपा देते हैं, और सहयोगी आपके वातावरण को दोहरा नहीं सकते। समाधान है: कार्यस्थान को कभी न सहेजें — अपनी स्क्रिप्ट चलाकर उसे हमेशा फिर से बनाएँ।
# The recommended R startup setting (in RStudio):
# Tools -> Global Options -> General
# Restore .RData at startup: UNCHECKED
# Save workspace on exit: NEVER
# This forces you to write scripts that are fully self-contained.
# A fresh session that runs cleanly = reproducible analysis.
# Equivalent command-line flags:
# R --no-save --no-restore
cat('Always start fresh!')rm() — कार्यस्थान साफ़ करना
rm(list = ls()) वैश्विक वातावरण से सभी ऑब्जेक्ट हटाने का मानक तरीका है। इससे R को पुनः प्रारंभ किए बिना एक नए सत्र का अनुकरण होता है। हर बार स्वच्छ स्थिति सुनिश्चित करने के लिए इसे अक्सर स्क्रिप्ट की शुरुआत में रखा जाता है।
# Create some objects
a <- 1
b <- 'hello'
df <- data.frame(x = 1:3)
cat('Before rm:', length(ls()), 'objects\n')
# Remove specific objects
rm(a, b)
cat('After rm(a,b):', length(ls()), 'objects\n')
# Remove ALL objects in global environment
rm(list = ls())
cat('After rm(list=ls()):', length(ls()), 'objects')options() — वैश्विक सत्र सेटिंग्स
options() पूरे R सत्र के कई व्यवहारों को नियंत्रित करता है। आम तौर पर निर्धारित किए जाने वाले दो विकल्प हैं: scipen (वैज्ञानिक संकेतांकन के लिए दंड) और digits (प्रिंट किए जाने वाले सार्थक अंकों की संख्या)। एकसमान आउटपुट के लिए इन्हें स्क्रिप्ट की शुरुआत में निर्धारित करें।
# Default behavior:
cat(0.000123456, '\n') # may show 1.23456e-04
# Suppress scientific notation (positive scipen = prefer fixed)
options(scipen = 999)
cat(0.000123456, '\n') # now shows 0.000123456
# Control printed digits
options(digits = 4)
cat(pi, '\n') # 3.142
# Check current options:
cat('scipen:', getOption('scipen'), '\n')
cat('digits:', getOption('digits')).Renviron — पर्यावरण चर
.Renviron फ़ाइल उन पर्यावरण चरों को संग्रहीत करती है जिन्हें R शुरू होते समय लोड करता है। यह गुप्त जानकारियों और कॉन्फ़िगरेशन मानों—जैसे API कुंजियाँ, डेटाबेस पासवर्ड और फ़ाइल सिस्टम पथ—को रखने के लिए सही स्थान है, ताकि वे आपके स्रोत कोड में न रहें।
# .Renviron file (in ~ or project root):
# DATABASE_URL=postgres://user:pass@host/db
# OPENAI_API_KEY=sk-abc123
# DATA_ROOT=/data/shared
# Read in R:
db_url <- Sys.getenv('DATABASE_URL')
api_key <- Sys.getenv('OPENAI_API_KEY', unset = 'KEY_NOT_SET')
cat('DB URL set:', nchar(db_url) > 0, '\n')
cat('API key:', api_key)
# To edit .Renviron:
# usethis::edit_r_environ() <- if usethis is installed
# file.edit('~/.Renviron') <- base RsaveRDS() — एकल ऑब्जेक्ट सहेजना
saveRDS() एकल R ऑब्जेक्ट को .rds फ़ाइल में क्रमबद्ध करता है। महँगी गणनाओं के परिणामों को कैश करने के लिए यह पसंदीदा तरीका है, क्योंकि फ़ाइल में ठीक एक ऑब्जेक्ट संग्रहीत होता है और आप नियंत्रित करते हैं कि वास्तव में क्या सहेजना और लोड करना है।
# Create an object to save
result_list <- list(
model = 'linear_regression',
r2 = 0.87,
rmse = 12.4,
created = Sys.time()
)
# Save to disk
tmp_rds <- tempfile(fileext = '.rds')
saveRDS(result_list, file = tmp_rds)
cat('Saved to:', tmp_rds, '\n')
# Load it back (even in a fresh session)
loaded <- readRDS(tmp_rds)
cat('R-squared:', loaded$r2)readRDS() — एकल ऑब्जेक्ट पुनर्स्थापित करना
readRDS() किसी .rds फ़ाइल को वापस R ऑब्जेक्ट में क्रम-विरहित करता है। load() के विपरीत, लौटाए गए मान को किसी नाम में निर्दिष्ट करना आवश्यक है—इसलिए आप अपने कोड के अलग-अलग हिस्सों में उसी फ़ाइल को अलग-अलग नामों से लोड कर सकते हैं।
# Suppose model_results.rds was saved earlier
tmp <- tempfile(fileext = '.rds')
saveRDS(list(coef = c(1.2, 3.4), n = 100), tmp)
# Load with a meaningful name:
model_output <- readRDS(tmp)
cat('Coefficients:', model_output$coef, '\n')
cat('Sample size:', model_output$n, '\n')
# Key advantage over load():
# With load(), the name is baked into the file.
# With readRDS(), YOU choose the name on load.
cat('readRDS gives you naming control')save() और load() — अनेक ऑब्जेक्ट
save() एक या अधिक नामित ऑब्जेक्ट को .RData फ़ाइल में क्रमबद्ध करता है। load() उन्हें पुनर्स्थापित करता है—लेकिन मूल नाम अपने-आप पुनर्स्थापित हो जाते हैं, जिससे मौजूदा ऑब्जेक्ट बिना सूचना के अधिलेखित हो सकते हैं। सावधानी से उपयोग करें।
# Save multiple objects at once
scores <- c(85, 92, 78)
labels <- c('Alice', 'Bob', 'Carol')
tmp_rdata <- tempfile(fileext = '.RData')
save(scores, labels, file = tmp_rdata)
cat('Saved to:', tmp_rdata, '\n')
# Remove originals to simulate a new session
rm(scores, labels)
cat('Removed. Objects now:', length(ls()), '\n')
# Load restores original names automatically
load(tmp_rdata)
cat('Restored scores:', scores)saveRDS बनाम save — किसका उपयोग कब करें
एकल ऑब्जेक्ट के लिए saveRDS() का उपयोग करें, जब आप लोड करते समय नामकरण पर पूरा नियंत्रण चाहते हों—यह मॉडल आउटपुट, संसाधित डेटासेट और कैश किए गए परिणामों के लिए आदर्श है। save() का उपयोग केवल तब करें, जब किसी विशेष सहयोगी कार्यप्रवाह के लिए अनेक नामित ऑब्जेक्ट को एक साथ रखना आवश्यक हो।
# saveRDS: one object, you name it on load
# saveRDS(my_model, 'outputs/model_v2.rds')
# m <- readRDS('outputs/model_v2.rds') <- your name choice
# save: multiple objects, names fixed in the file
# save(model, validation_df, file = 'outputs/session.RData')
# load('outputs/session.RData') <- restores 'model' and 'validation_df'
# Practical rule:
# saveRDS for caching single results
# save for snapshots shared between collaborators
cat('saveRDS is usually the better choice')options() की जाँच और पुनर्स्थापना
किसी सत्र के दौरान निर्धारित किए गए विकल्प केवल उसी सत्र तक बने रहते हैं। अपनी स्क्रिप्ट को स्व-निहित रखने के लिए आवश्यक विकल्पों को शुरुआत में निर्धारित करें और (वैकल्पिक रूप से) स्क्रिप्ट समाप्त होने पर on.exit() का उपयोग करके पुराने मान पुनर्स्थापित करें।
# Capture current options before changing
old_options <- options(scipen = 999, digits = 3)
# Use on.exit to restore them no matter what
on.exit(options(old_options), add = TRUE)
# Now do your work
cat(pi, '\n') # 3.14
cat(1234567.89, '\n') # 1234568 (no sci notation)
# When function or script exits, options are restored automatically
cat('Options will restore on exit')कार्यस्थान प्रबंधन के लिए RStudio प्रोजेक्ट
RStudio प्रोजेक्ट (.Rproj फ़ाइल) कार्यशील निर्देशिका को प्रोजेक्ट के मूल स्थान पर अपने-आप निर्धारित करता है, प्रत्येक प्रोजेक्ट के लिए अलग .Rhistory रखता है और सत्र विकल्पों को अलग रखता है। स्व-निहित R प्रोजेक्ट प्रबंधित करने का यह मानक तरीका है।
# When you open a .Rproj file, RStudio automatically:
# 1. Sets working directory to the project root
# 2. Loads the project-specific .Rhistory
# 3. Optionally restores project .RData
# Best practice for new projects:
# File -> New Project -> New Directory -> New Project
# Your project structure then looks like:
# my_project/
# my_project.Rproj
# .Rprofile (project-level options)
# .Renviron (project-level env vars)
# R/ (scripts)
# data/ (raw data)
# output/ (results)
cat('RStudio Projects = clean workspaces')त्वरित जाँच
आप clean_data नामक एकल R डेटा फ़्रेम को डिस्क पर सहेजना चाहते हैं, ताकि किसी अन्य स्क्रिप्ट में उसे अपनी पसंद के किसी भी चर नाम से फिर लोड कर सकें। आपको किस फ़ंक्शन का उपयोग करना चाहिए?
कार्यस्थान प्रबंधन — मुख्य बातें
अच्छी तरह प्रबंधित R कार्यस्थान पुनरुत्पाद्य विश्लेषण की नींव है:
.RData/.Rhistory— अपने-आप सहेजी जाने वाली कार्यस्थान फ़ाइलें (ऑटो-सेव बंद करें!)rm(list = ls())— स्वच्छ स्थिति के लिए सभी ऑब्जेक्ट हटाएँoptions(scipen = 999, digits = 4)— संख्या के स्वरूपण को नियंत्रित करें.Renviron— API कुंजियों और पथों को पर्यावरण चर के रूप में संग्रहीत करेंsaveRDS(obj, 'file.rds')— एकल ऑब्जेक्ट कैश करेंreadRDS('file.rds')— अपने नाम से पुनर्स्थापित करेंsave(a, b, file = 'session.RData')— अनेक ऑब्जेक्ट एक साथ रखेंload('session.RData')— सभी एक साथ रखे गए ऑब्जेक्ट पुनर्स्थापित करें- कार्यशील निर्देशिका के स्वचालित प्रबंधन के लिए RStudio प्रोजेक्ट का उपयोग करें
# Typical script header for clean, reproducible analysis:
rm(list = ls()) # clean workspace
options(scipen = 999, digits = 4) # formatting
# Load secrets from .Renviron:
db_url <- Sys.getenv('DATABASE_URL')
# Load cached data if available:
cache_file <- file.path('cache', 'processed_data.rds')
if (file.exists(cache_file)) {
df <- readRDS(cache_file)
cat('Loaded from cache\n')
} else {
cat('Cache not found, run data_prep.R first\n')
}
cat('Workspace ready')एआई शिक्षक के साथ R सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 43
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “R प्रोजेक्ट और कार्यक्षेत्र प्रबंधन” पाठ निःशुल्क है?
हाँ — R Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “R प्रोजेक्ट और कार्यक्षेत्र प्रबंधन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“R प्रोजेक्ट और कार्यक्षेत्र प्रबंधन” में मैं क्या सीखूँगा?
RStudio प्रोजेक्ट बनाएँ और .RData, .Rhistory तथा .Renviron प्रबंधित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या R Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर R Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“R प्रोजेक्ट और कार्यक्षेत्र प्रबंधन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस R Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर R Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- स्क्रिप्ट लोड करने के लिए source() का उपयोग
- टिप्पणियाँ, शैली और पठनीयता
- कार्यशील निर्देशिकाएँ और फ़ाइल पथ
- R प्रोजेक्ट और कार्यक्षेत्र प्रबंधन