मुख्य सामग्री पर जाएँ

R में डेटा इम्पोर्ट कैसे करें: एक सम्पूर्ण गाइड

readr, readxl, haven, data.table और अन्य लोकप्रिय पैकेजों का उपयोग करके CSV, Excel, JSON, SQL डेटाबेस, XML और अन्य को R में कैसे इम्पोर्ट करें, जानें।
· 10 मि॰ पढ़ें

AI के साथ खोजें

R में डेटा लोड करना काफ़ी निराशाजनक हो सकता है। लगभग हर प्रकार की फ़ाइल जिसे आप R में लाना चाहते हैं, उसके लिए अलग फ़ंक्शन चाहिए होता है, और तब भी आप फ़ंक्शनों के आर्ग्युमेंट्स में उलझ सकते हैं। संक्षेप में, चाहे आप शुरुआत कर रहे हों या उन्नत R उपयोगकर्ता हों, चीज़ें गड़बड़ा जाना आसान है।

इन्हीं ज़रूरतों को पूरा करने के लिए, हमने R में डेटा इम्पोर्ट करने पर एक व्यापक लेकिन आसान ट्यूटोरियल बनाया है, जो सरल टेक्स्ट फ़ाइलों से लेकर उन्नत SPSS और SAS फ़ाइलों तक जाता है। जानने के लिए पढ़ते रहें कि आप अपनी फ़ाइलें R में आसानी से कैसे इम्पोर्ट कर सकते हैं!

इस ट्यूटोरियल के सभी उदाहरण कोड को स्वयं आसानी से चलाने के लिए, आप मुफ़्त में एक DataLab वर्कबुक बनाएँ जिसमें R पहले से इंस्टॉल होता है और सभी कोड सैंपल शामिल होते हैं। R में डेटा इम्पोर्ट करने का और अभ्यास करने के लिए, यह हैंड्स-ऑन DataCamp एक्सरसाइज़ देखें।

R में डेटा इम्पोर्ट करना: शुरुआत कैसे करें

R एक बहुउद्देशीय सांख्यिकीय टूल है। Microsoft Excel जैसे अन्य सॉफ़्टवेयर की तुलना में, R तेज़ डेटा लोडिंग, स्वचालित डेटा क्लीनिंग, और गहन सांख्यिकीय व प्रेडिक्टिव विश्लेषण प्रदान करता है। यह सब ओपन-सोर्स R पैकेजों की मदद से होता है, और हम सीखेंगे कि अलग-अलग प्रकार के डेटासेट इम्पोर्ट करने के लिए इन्हें कैसे उपयोग करें। 

हम कोड उदाहरण चलाने के लिए DataLab का उपयोग करेंगे। इसमें पहले से पैकेज और R वातावरण इंस्टॉल होते हैं। आपको कुछ सेटअप नहीं करना पड़ता और आप सेकंडों में कोडिंग शुरू कर सकते हैं। यह एक मुफ़्त सेवा है और बहुत से डेटासेट के साथ आती है। 

यदि आप लोकल काम करना पसंद करते हैं, तो हमारा गाइड देखें: Windows, Mac, और Ubuntu पर R कैसे इंस्टॉल करें।

ज़रूरी पैकेज इंस्टॉल करना

DataLab वर्कबुक लोड करने के बाद, आपको कुछ ऐसे पैकेज इंस्टॉल करने होंगे जो बहुत लोकप्रिय नहीं हैं, लेकिन SAS, SPSS, Stata और Matlab फ़ाइलें लोड करने के लिए ज़रूरी हैं। 

Tidyverse पैकेजों का सेट कई ऐसे पैकेजों के साथ आता है जो आपको फ्लैट फ़ाइलें पढ़ने, डेटा क्लीन करने, डेटा मैनिपुलेशन और विज़ुअलाइज़ेशन करने, और भी बहुत कुछ करने देते हैं।

हम install.packages() फ़ंक्शन से पैकेज एक-एक करके इंस्टॉल कर सकते हैं। 

install.packages('tidyverse',dependency=T)

हम एक साथ कई पैकेज भी इंस्टॉल कर सकते हैं, जिसके लिए पैकेजों के नाम c() फ़ंक्शन में दें। इंस्टॉल करने के बाद, आप library() से इन्हें अपने लोकल वातावरण में लोड करें। यहाँ आउटपुट छोटा रखने के लिए मैंने library() को suppressPackageStartupMessages() में लपेटा है। 

install.packages(c('quantmod','ff','foreign','R.matlab'),dependency=T)
suppressPackageStartupMessages(library(tidyverse))

आप देख सकते हैं कि मैंने install.packages() फ़ंक्शन में dependency=T पैरामीटर देकर डिपेंडेंसियाँ इंस्टॉल होना सुनिश्चित किया है।

संक्षेप में

  • CSV फ़ाइलों के लिए readr::read_csv() और Excel फ़ाइलों के लिए readxl::read_excel() का उपयोग करें; दोनों tidyverse का हिस्सा हैं

  • rjson::fromJSON() JSON संभालता है, जबकि RSQLite और DBI SQL डेटाबेस से कनेक्ट करते हैं

  • haven पैकेज SAS (.sas7bdat), SPSS (.sav) और Stata (.dta) फ़ाइलें पढ़ता है

  • xml2 और rvest XML पार्स करते हैं और वेब से HTML टेबल स्क्रैप करते हैं

  • बड़ी फ़ाइलों (1 GB+) के लिए data.table::fread() सबसे तेज़ विकल्प है

R में सामान्य डेटा प्रकारों से डेटा इम्पोर्ट करना

यह ट्यूटोरियल R में प्रचलित CSV, TXT, Excel, JSON, डेटाबेस, और XML/HTML डेटा फ़ाइलों को कवर करता है। मैं कम प्रचलित फ़ॉर्मैट जैसे SAS, SPSS, Stata, Matlab और बाइनरी फ़ाइलें भी कवर करता/करती हूँ, साथ ही वेब से HTML टेबल और XML डेटा स्क्रैप करना भी।  

त्वरित संदर्भ: फ़ाइल प्रकार के अनुसार इम्पोर्ट फ़ंक्शन

फ़ाइल प्रकारपैकेजफ़ंक्शनआउटपुट
CSVreadrread_csv()tibble
CSVbase Rread.csv()data.frame
CSV (बड़ा)data.tablefread()data.table
TXTbase Rread.delim()data.frame
Excelreadxlread_excel()tibble
JSONrjsonfromJSON()list
SQLDBI + RSQLitedbGetQuery()data.frame
XMLxml2read_xml()xml_document
HTML टेबलrvesthtml_table()tibble
SAShavenread_sas()tibble
SPSShavenread_sav()tibble
Statahavenread_dta()tibble
MatlabR.matlabreadMat()list
Parquetarrowread_parquet()tibble
बाइनरीbase RreadBin()vector

CSV और TXT फ़ाइलों से R में डेटा इम्पोर्ट करना

आइए दो सबसे सामान्य डेटा फ़ॉर्मैट, CSV और TXT, से शुरू करें।

R में CSV फ़ाइल इम्पोर्ट करना

इस सेक्शन में, हम Hotel Booking Demand से एक CSV फ़ाइल लोड करके R में डेटा पढ़ेंगे। यह डेटासेट एक सिटी होटल और एक रिज़ॉर्ट होटल की बुकिंग डेटा से बना है। CSV फ़ाइल इम्पोर्ट करने के लिए, हम readr पैकेज का read_csv() फ़ंक्शन उपयोग करेंगे। Pandas की तरह, यह आपसे फ़ाइल का लोकेशन मांगता है ताकि फ़ाइल प्रोसेस करके उसे डेटा फ़्रेम के रूप में लोड किया जा सके। 

आप utils पैकेज के read.csv() या read.delim() फ़ंक्शनों का उपयोग करके भी CSV फ़ाइलें लोड कर सकते हैं। 

data1 <- read_csv('data/hotel_bookings_clean.csv',show_col_types = FALSE)
head(data1, 5)

image23.png

read_csv() की तरह ही आप read.table() फ़ंक्शन से भी फ़ाइल लोड कर सकते हैं। सुनिश्चित करें कि आप डिलिमिटर के रूप में कॉमा जोड़ रहे हैं, और header = 1 दे रहे हैं। इससे पहली पंक्ति V1, V2, ... की जगह कॉलम नामों के रूप में सेट हो जाएगी।

data2 <- read.table('data/hotel_bookings_clean.csv', sep=",", header = 1)
head(data2, 5)

image23.png

R में TXT फ़ाइल इम्पोर्ट करना

इस भाग में, हम Drake Lyrics डेटासेट का उपयोग करके टेक्स्ट फ़ाइल लोड करेंगे। फ़ाइल में गायक Drake के गीत हैं। हम readLines() फ़ंक्शन से साधारण फ़ाइल लोड कर सकते हैं, लेकिन उसे डेटा फ़्रेम में बदलने के लिए अतिरिक्त काम करना पड़ेगा। 

Import TXT File in R

लेखक द्वारा बनाई गई छवि | टेक्स्ट फ़ाइल

हम read.table का वैकल्पिक फ़ंक्शन read.delim() इस्तेमाल करेंगे ताकि टेक्स्ट फ़ाइल को R डेटा फ़्रेम के रूप में लोड किया जा सके। read.table के अन्य वैकल्पिक फ़ंक्शन हैं read.csv, read.csv2, और read.delim2।

नोट: डिफ़ॉल्ट रूप से यह मानों को टैब पर अलग करता है (sep = "\t")

टेक्स्ट फ़ाइल में गीत हैं और हेडर पंक्ति नहीं है। सभी गीतों को एक पंक्ति में दिखाने के लिए, हमें header = F सेट करना होगा। 

आप अपने डेटा फ़्रेम को कस्टमाइज़ करने के लिए अन्य पैरामीटर भी उपयोग कर सकते हैं, जैसे fill पैरामीटर, जो असमान लंबाई वाली पंक्तियों में खाली फ़ील्ड जोड़ता है।

read.table के वैकल्पिक फ़ंक्शनों में हर पैरामीटर के बारे में जानने के लिए डॉक्यूमेंटेशन पढ़ें।  

data3 <- read.delim('data/drake_lyrics.txt',header = F)
head(data3, 5)

Table 2.png

Excel से R में डेटा इम्पोर्ट करना

इस सेक्शन में, हम Kaggle से Tesla Deaths डेटासेट का उपयोग Excel से R में इम्पोर्ट करने के लिए करेंगे। यह डेटासेट टेस्ला वाहनों के उन दुखद हादसों के बारे में है जिनमें चालक, यात्री, साइकिल सवार या पैदल यात्री की मृत्यु हुई। 

डेटासेट में एक CSV फ़ाइल है, और हम MS Excel का उपयोग करके इसे Excel फ़ाइल में बदलेंगे, जैसा कि नीचे दिखाया गया है। 

Import Excel data into R

लेखक द्वारा बनाई गई छवि

हम readxl पैकेज के read_excel() फ़ंक्शन का उपयोग करके Excel फ़ाइल से एक शीट पढ़ेंगे। यह पैकेज tidyverse के साथ आता है, लेकिन इसका कोर हिस्सा नहीं है, इसलिए फ़ंक्शन इस्तेमाल करने से पहले पैकेज लोड करना होगा। 

यह फ़ंक्शन डेटा का लोकेशन और शीट नंबर मांगता है। हम read_excel के डॉक्यूमेंटेशन में अन्य पैरामीटर पढ़कर अपने डेटा फ़्रेम का रूप भी बदल सकते हैं।

library(readxl)
data4 <- read_excel("data/Tesla Deaths.xlsx", sheet = 1)
head(data4, 5)

Table 3.png

JSON फ़ाइल से डेटा इम्पोर्ट करना

इस भाग में, हम Drake Lyrics डेटासेट की फ़ाइल से JSON को R में लोड करेंगे। इसमें Drake गानों के बोल, गाने का शीर्षक, एल्बम का शीर्षक, URL और व्यू काउंट शामिल हैं। 

Import JSON into R

लेखक द्वारा बनाई गई छवि

JSON फ़ाइल लोड करने के लिए, हम rjson पैकेज लोड करेंगे और fromJSON() से JSON फ़ाइल को पार्स करेंगे। 

library(rjson)
JsonData <- fromJSON(file = 'data/drake_data.json')
print(JsonData[1])

आउटपुट:

[[1]]
[[1]]$album
[1] "Certified Lover Boy"

[[1]]$lyrics_title
[1] "Certified Lover Boy* Lyrics"

[[1]]$lyrics_url
[1] "https://genius.com/Drake-certified-lover-boy-lyrics"

[[1]]$lyrics
[1] "Lyrics from CLB Merch\n\n[Verse]\nPut my feelings on ice\nAlways been a gem\nCertified lover boy, somehow still heartless\nHeart is only gettin' colder"

[[1]]$track_views
[1] "8.7K"

JSON डेटा को R डेटा फ़्रेम में बदलने के लिए, हम base R का as.data.frame() फ़ंक्शन उपयोग करेंगे। 

data5 = as.data.frame(JsonData[1])
data5

Table 4.png

R में SQL का उपयोग करके डेटाबेस से डेटा इम्पोर्ट करना

इस भाग में, हम Kaggle के Mental Health in the Tech Industry डेटासेट का उपयोग करेंगे ताकि R के ज़रिए SQLite डेटाबेस लोड कर सकें। SQL क्वेरीज़ से डेटाबेस से डेटा निकालने के लिए, हम DBI पैकेज और SQLite फ़ंक्शन का उपयोग करके कनेक्शन बनाएँगे। आप इसी तरह के सिंटैक्स से अन्य SQL सर्वर से भी डेटा लोड कर सकते हैं।  

हम RSQLite पैकेज लोड करेंगे और dbConnect फ़ंक्शन से डेटाबेस लोड करेंगे। 

नोट: आप MySQL, PostgreSQL और अन्य लोकप्रिय SQL सर्वरों से डेटा लोड करने के लिए भी dbConnect का उपयोग कर सकते हैं।

डेटाबेस लोड करने के बाद, हम टेबलों के नाम दिखाएँगे।

library(RSQLite)

conn <- dbConnect(RSQLite::SQLite(), "data/mental_health.sqlite")
dbListTables(conn) # 'Answer''Question''Survey'

क्वेरी चलाने और परिणाम दिखाने के लिए, हम dbGetQuery() फ़ंक्शन का उपयोग करेंगे। बस SQLite कनेक्शन ऑब्जेक्ट और SQL क्वेरी को स्ट्रिंग के रूप में जोड़ें।  

dbGetQuery(conn, "SELECT * FROM Survey")

Table 5.png

R के भीतर SQL उपयोग करने से आपको डेटा इन्जेशन और विश्लेषण पर अधिक नियंत्रण मिलता है।  

(data6 = dbGetQuery(conn, "SELECT * FROM Question  LIMIT 3"))

Table 6.png

R में SQL क्वेरी चलाने के बारे में अधिक जानने के लिए How to Execute SQL Queries in Python and R ट्यूटोरियल देखें। यह आपको डेटाबेस लोड करना और dplyr व ggplot के साथ SQL उपयोग करना सिखाएगा। 

XML और HTML फ़ाइलों से डेटा इम्पोर्ट करना

अब देखते हैं कि दो लोकप्रिय मार्कअप भाषाओं, XML और HTML, से डेटा कैसे इम्पोर्ट करें।

R में XML इम्पोर्ट करना

इस सेक्शन में, हम plant_catalog XML डेटा w3schools से xml2 पैकेज का उपयोग करके लोड करेंगे। 

नोट: आप XML पैकेज के xmlTreeParse() फ़ंक्शन से भी डेटा लोड कर सकते हैं।  

read_csv() फ़ंक्शन की तरह ही, हम XML साइट के URL लिंक देकर XML डेटा लोड कर सकते हैं। यह पेज लोड करेगा और XML डेटा पार्स करेगा।

library(xml2)

plant_xml <- read_xml('https://www.w3schools.com/xml/plant_catalog.xml')
plant_xml_parse <- xmlParse(plant_xml)

बाद में, आप xmlToDataFrame() फ़ंक्शन से XML डेटा को R डेटा फ़्रेम में बदल सकते हैं। 

1. XML डेटा से नोड सेट निकालें। 

  • पहला आर्ग्युमेंट doc है जो XMLInternalDocument क्लास का ऑब्जेक्ट होता है। 

  • दूसरा आर्ग्युमेंट path है, जो एवाल्युएट करने के लिए XPath अभिव्यक्ति देने वाली स्ट्रिंग होती है।

2. plant_node को xmlToDataFrame() फ़ंक्शन में दें और R डेटा फ़्रेम की पहली पाँच पंक्तियाँ दिखाएँ। 

plant_nodes= getNodeSet(plant_xml_parse, "//PLANT")

data9 <- xmlToDataFrame(nodes=plant_nodes)
head(data9,5)

Table 7.png

R में HTML टेबल इम्पोर्ट करना

यह सेक्शन रोचक है क्योंकि हम अर्जेंटीना राष्ट्रीय फुटबॉल टीम के Wikipedia पेज को स्क्रैप करेंगे, HTML टेबल निकालेंगे और कुछ पंक्तियों के कोड से उसे डेटा फ़्रेम में बदलेंगे। 

World Cup Data.png

छवि स्रोत: Wikipedia

HTML टेबल लोड करने के लिए, हम XML और RCurl पैकेजों का उपयोग करेंगे। हम Wikipedia URL को getURL() फ़ंक्शन को देंगे और फिर नीचे दिखाए अनुसार उस ऑब्जेक्ट को readHTMLTable() फ़ंक्शन में जोड़ेंगे। 

यह फ़ंक्शन वेबसाइट से सभी HTML टेबल निकाल देगा, और हमें अपनी ज़रूरत वाली टेबल चुनने के लिए उन्हें अलग-अलग देखना होगा। 

library(XML)
library(RCurl)

url <- getURL("https://en.wikipedia.org/wiki/Brazil_national_football_team")
tables <- readHTMLTable(url)
data7 <- tables[31]

data7$`NULL`

Table 8.png

इसके अलावा, आप rvest पैकेज का उपयोग URL से HTML पढ़ने, सभी टेबल निकालने और उन्हें डेटा फ़्रेम के रूप में प्रदर्शित करने के लिए कर सकते हैं। 

  • वेबसाइटों से HTML डेटा निकालने के लिए read_html(URL)।

  • HTML डेटा से टेबल निकालने के लिए html_nodes(file, "table")।

  • HTML टेबल को डेटा फ़्रेम में बदलने के लिए html_table(tables[25])। 

library(rvest)

url <- "https://en.wikipedia.org/wiki/Argentina_national_football_team"
file <- read_html(url)
tables <- html_nodes(file, "table")
data8 <- html_table(tables[25])

View(data8)

Table 9.png

यदि आपको ट्यूटोरियल फॉलो करते समय दिक्कत आ रही है, तो आप हमेशा इस ट्यूटोरियल का पूरा कोड वाला DataLab वर्कबुक देख सकते हैं। बस एक कॉपी बनाएँ और अभ्यास शुरू करें। 

R में अन्य डेटा प्रकारों से डेटा इम्पोर्ट करना

अन्य कम लोकप्रिय लेकिन ज़रूरी डेटा प्रकार सांख्यिकीय सॉफ़्टवेयर, Matlab और बाइनरी डेटा से आते हैं। 

SAS फ़ाइल से डेटा इम्पोर्ट करना

इस सेक्शन में, हम SAS फ़ाइलें इम्पोर्ट करने के लिए haven पैकेज का उपयोग करेंगे। आप डेटा GeeksforGeeks ब्लॉग से डाउनलोड कर सकते हैं। haven पैकेज आपको बहुत कम कोड में SAS, SPSS और Stata फ़ाइलें R में लोड करने देता है। 

read_sas() फ़ंक्शन को फ़ाइल डायरेक्टरी दें ताकि .sas7bdat फ़ाइल डेटा फ़्रेम के रूप में लोड हो सके। अधिक जानने के लिए फ़ंक्शन का डॉक्यूमेंटेशन पढ़ें।

library(haven)
 
data10 <- read_sas('data/lond_small.sas7bdat')

# display data
head(data10,5)

Table 10.png

SPSS फ़ाइल से डेटा इम्पोर्ट करना

जैसा कि हम जानते हैं, हम haven पैकेज से SPSS फ़ाइलें भी R में लोड कर सकते हैं। आप डेटा GeeksforGeeks ब्लॉग से डाउनलोड करें और read_sav() फ़ंक्शन से SPSS sav फ़ाइल लोड करें। 

इसके लिए फ़ाइल डायरेक्टरी स्ट्रिंग के रूप में देनी होती है, और आप encoding, col_select और compress जैसे अतिरिक्त आर्ग्युमेंट से अपने डेटा फ़्रेम को बदल सकते हैं।

library(haven)
 
data11 <- read_sav("data/airline_passengers.sav")                       
head(data11,5)

Table 11.png

आप foreign पैकेज का उपयोग करके भी .sav फ़ाइल को read.spss() फ़ंक्शन से डेटा फ़्रेम के रूप में लोड कर सकते हैं। इस फ़ंक्शन को केवल दो आर्ग्युमेंट file और to.data.frame चाहिए होते हैं। अन्य आर्ग्युमेंट्स के बारे में जानने के लिए फ़ंक्शन का डॉक्यूमेंटेशन पढ़ें। 

नोट: foreign पैकेज आपको Minitab, S, SAS, SPSS, Stata, Systat, Weka, और Octave फ़ाइल फ़ॉर्मैट भी लोड करने देता है।  

library("foreign")
 
data12 <- read.spss("data/airline_passengers.sav", to.data.frame = TRUE)
head(data12,5)

Table 12.png

Stata फ़ाइलें R में इम्पोर्ट करना

इस भाग में, हम ucla.edu से Stata फ़ाइल लोड करने के लिए foreign पैकेज का उपयोग करेंगे। 

read.dta फ़ंक्शन Stata बाइनरी फ़ाइलें (संस्करण 5 से 12 तक) पढ़ता है और उन्हें R डेटा फ़्रेम में बदलता है।

नोट: Stata के संस्करण 13 से आगे की फ़ाइलों के लिए haven::read_dta() उपयोग करें। haven पैकेज सभी Stata संस्करणों का समर्थन करता है और tibble लौटाता है।

library("foreign")

data13 <- read.dta("data/friendly.dta")
head(data13,5)

Table 13.png

R में Matlab फ़ाइलें इम्पोर्ट करना

MATLAB छात्रों और शोधकर्ताओं में काफ़ी प्रसिद्ध है। R.matlab पैकेज हमें .mat फ़ाइल लोड करने देता है, ताकि हम R में डेटा विश्लेषण कर सकें और सिमुलेशन चला सकें। 

इसे स्वयं आज़माने के लिए MATLAB फ़ाइलें Kaggle से डाउनलोड करें।

library(R.matlab)

data14 <- readMat("data/cross_dsads.mat")
head(data14$data.dsads)

Table 14.png

R में बाइनरी फ़ाइलें इम्पोर्ट करना

इस भाग में, हम पहले एक बाइनरी फ़ाइल बनाएँगे और फिर readBin() फ़ंक्शन से फ़ाइल पढ़ेंगे।

नोट: कोड उदाहरण Working with Binary Files in R Programming ब्लॉग के संशोधित संस्करण पर आधारित है।

सबसे पहले, हमें चार कॉलम और चार पंक्तियों वाला डेटा फ़्रेम बनाना होगा।

df = data.frame(
  "ID" = c(1, 2, 3, 4),
  "Name" = c("Abid", "Matt", "Sara", "Dean"),
  "Age" = c(34, 25, 27, 50),
  "Pin" = c(234512, 765345, 345678, 098567)
)

उसके बाद, file() फ़ंक्शन से एक कनेक्शन ऑब्जेक्ट बनाएँ। 

con = file("data/binary_data.dat", "wb")

writeBin() फ़ंक्शन से कॉलम नाम फ़ाइल में लिखें।

writeBin(colnames(df), con)

फ़ाइल में हर कॉलम के मान लिखें।

writeBin(c(df$ID, df$Name, df$Age, df$Pin), con)

डेटा फ़ाइल में लिखने के बाद कनेक्शन बंद करें।

close(con)

बाइनरी फ़ाइल पढ़ने के लिए, हमें फ़ाइल से कनेक्शन बनाना होगा और readBin() फ़ंक्शन से डेटा को integer के रूप में दिखाना होगा। 

फ़ंक्शन में उपयोग किए गए आर्ग्युमेंट:

  • conn: एक कनेक्शन ऑब्जेक्ट।

  • what: ऐसा ऑब्जेक्ट जिसकी मोड पढ़े जाने वाले वेक्टर की मोड तय करेगी।

  • n: पढ़ी जाने वाली रिकॉर्ड की संख्या।

con = file("data/binary_data.dat", "rb")
data15_1 = readBin(con, integer(), n = 25)

print(data15_1)

आउटपुट:

[1] 1308640329    6647137    6645569    7235920    3276849    3407923
[7] 1684628033 1952533760 1632829556 1140875634    7233893  838874163
[13]  926023733    3159296  892613426  922759729  875771190  875757621
[19]  943142453  892877056

आप what आर्ग्युमेंट में integer() की जगह character() रखकर डेटा को बाइनरी से स्ट्रिंग में भी बदल सकते हैं। 

readBin() फ़ंक्शन का डॉक्यूमेंटेशन पढ़कर और जानें।

con = file("data/binary_data.dat", "rb")
data15_2 = readBin(con, character(), n = 25)

print(data15_2)

आउटपुट:

[1] "ID"     "Name"   "Age"    "Pin"    "1"      "2"      "3"      "4"    
[9] "Abid"   "Matt"   "Sara"   "Dean"   "34"     "25"     "27"     "50"   
[17] "234512" "765345" "345678" "98567" 

फ्लैट फ़ाइलें, सांख्यिकीय सॉफ़्टवेयर, डेटाबेस, या सीधे वेब से डेटा इम्पोर्ट करना सीखने के लिए हमारा Intermediate Importing Data in R कोर्स करें।

QuantMod का उपयोग करके R में डेटा इम्पोर्ट करना

Quantmod R के लिए एक फ़ाइनेंशियल मॉडलिंग और ट्रेडिंग फ़्रेमवर्क है। हम इसे नवीनतम ट्रेडिंग डेटा को डेटा फ़्रेम के रूप में डाउनलोड और लोड करने के लिए उपयोग करेंगे। 

हम quantmod का getSymbols() फ़ंक्शन उपयोग करेंगे ताकि “from” और “to” तिथियाँ और “frequency” देकर Google स्टॉक का ऐतिहासिक डेटा लोड कर सकें। quantmod पैकेज के बारे में और जानने के लिए डॉक्यूमेंटेशन पढ़ें।

library(quantmod)

getSymbols("GOOGL",
          from = "2022/12/1",
          to = "2023/1/15",
          periodicity = "daily")
# 'GOOGL'

डेटा GOOGL ऑब्जेक्ट में लोड हो जाता है, और हम head() फ़ंक्शन से इसकी पहली पाँच पंक्तियाँ देख सकते हैं। 

head(GOOGL,5)

आउटपुट:

GOOGL.Open GOOGL.High GOOGL.Low GOOGL.Close GOOGL.Volume
2022-12-01     101.02     102.25    100.25      100.99     28687100
2022-12-02      99.05     100.77     98.90      100.44     21480700
2022-12-05      99.40     101.38     99.00       99.48     24405100
2022-12-06      99.30      99.78     96.42       96.98     24910700
2022-12-07      96.41      96.88     94.72       94.94     31045400
          GOOGL.Adjusted
2022-12-01         100.99
2022-12-02         100.44
2022-12-05          99.48
2022-12-06          96.98
2022-12-07          94.94

बड़े डेटासेट R में इम्पोर्ट करना

बड़ी फ़ाइल इम्पोर्ट करना पेचीदा हो सकता है। आपको सुनिश्चित करना चाहिए कि फ़ंक्शन मेमोरी-इफ़िशियंट स्टोरेज और तेज़ एक्सेस के लिए अनुकूलित हो। 

इस सेक्शन में, हम 1 GB से बड़ी CSV फ़ाइलें लोड करने के लिए लोकप्रिय फ़ंक्शनों को देखेंगे। हम Kaggle के US Accidents (2016 - 2021) डेटासेट का उपयोग कर रहे हैं, जिसका आकार लगभग 1.15GB है और इसमें 2,845,342 रिकॉर्ड हैं। 

US Accidents.jpg

read.table() का उपयोग करके बड़ा डेटासेट R में इम्पोर्ट करना

हम utils के read.table() फ़ंक्शन में सीधे zip फ़ाइल को unz फ़ंक्शन से दे सकते हैं। इससे CSV फ़ाइल को पहले अनज़िप करने और फिर लोड करने का समय बचेगा। 

  1. unz को zip डायरेक्टरी और zip के भीतर की CSV फ़ाइल दें।

  2. फिर unz ऑब्जेक्ट को read.table() फ़ंक्शन में दें।

  3. डेटा तेज़ी से लोड करने के लिए, हम nrows को 10,000 तक सीमित करेंगे।

  4. डिफ़ॉल्ट रूप से यह स्पेस पर मान अलग करता है, इसलिए सुनिश्चित करें कि आप sep आर्ग्युमेंट में कॉमा दे रहे हैं। 

file <- unz("data/US Accidents.zip", "US_Accidents_Dec21_updated.csv")

(data16 <- read.table(file, header=T, sep=",",nrow=10000))

Import a large dataset into R using read.table()

read.csv() का उपयोग करके बड़ा डेटासेट R में इम्पोर्ट करना

read.table() की तरह, हम readr के read_csv() फ़ंक्शन से भी CSV फ़ाइल लोड कर सकते हैं। nrow की जगह हम सीमित रिकॉर्ड पढ़ने के लिए n_max का उपयोग करेंगे।  

हमारे मामले में, हम किसी डेटा को सीमित नहीं कर रहे और फ़ंक्शन को पूरा डेटा लोड करने दे रहे हैं। 

नोट: पूरा डेटा लोड करने में लगभग एक मिनट लगा। आप थ्रेड्स की संख्या बदलकर लोडिंग समय घटा सकते हैं। अधिक जानने के लिए फ़ंक्शन का डॉक्यूमेंटेशन पढ़ें।

(data17 <- read_csv('data/US_Accidents_Dec21_updated.csv'))

Import a large dataset into R using read.csv()

ff पैकेज का उपयोग करके बड़ा डेटासेट इम्पोर्ट करना

हम ff पैकेज का भी उपयोग कर सकते हैं ताकि लोडिंग समय और स्टोरेज को अनुकूलित किया जा सके। read.table.ffdf() फ़ंक्शन डेटा को चंक्स में लोड करता है, जिससे समय कम लगता है।

हम पहले फ़ाइल को अनज़िप करेंगे और फिर read.table.ffdf() फ़ंक्शन से डेटा पढ़ेंगे। 

unzip('data/US Accidents.zip',exdir='data')

library(ff)

data18 <- read.table.ffdf(file="data/US_Accidents_Dec21_updated.csv",
                          nrows=10000,
                          header = TRUE,
                          sep = ',')
data18[1:5,1:25]

Table 17.png

अंत में, हम data.table पैकेज के सबसे आम फ़ंक्शन fread() को देखेंगे, जिससे पहली 10,000 पंक्तियाँ पढ़ेंगे। यह फ़ंक्शन फ़ाइल फ़ॉर्मैट को स्वतः समझ सकता है, पर दुर्लभ मामलों में आपको sep आर्ग्युमेंट देना पड़ सकता है।

data.table के सिंटैक्स और ऑपरेशनों पर गहराई से जानने के लिए हमारा data.table R Tutorial देखें।

library(data.table)

(data19 <- fread("data/US_Accidents_Dec21_updated.csv",
              sep=',',
              nrows = 10000,
              na.strings = c("NA","N/A",""),
              stringsAsFactors=FALSE
              ))

image22.png

Arrow से Parquet फ़ाइलें इम्पोर्ट करना

Parquet एक कॉलमनर स्टोरेज फ़ॉर्मैट है, जिसका बड़े एनालिटिकल डेटासेट के लिए उपयोग बढ़ रहा है। arrow पैकेज Parquet फ़ाइलें R में उच्च प्रदर्शन और कम मेमोरी उपयोग के साथ पढ़ता है।

library(arrow)

parquet_data <- read_parquet("data/example.parquet")
head(parquet_data, 5)

Arrow S3 बकेट्स और Google Cloud Storage से पढ़ने का समर्थन भी करता है। जो डेटासेट मेमोरी में नहीं समा पाते, उनके लिए open_dataset() का उपयोग करें ताकि बिना सब कुछ एकसाथ लोड किए, फ़ाइलों को चंक्स में प्रोसेस किया जा सके।

डेटासेट संदर्भ

यदि आप खुद से कोड उदाहरण आज़माना चाहते हैं, तो यहाँ ट्यूटोरियल में उपयोग किए गए सभी डेटासेट की सूची है।

  1. CSV: Hotel Booking Demand
  2. TXT: Drake Lyrics
  3. Excel: Tesla Deaths
  4. JSON: Drake Lyrics
  5. SQL DB: Mental Health in the Tech Industry
  6. XML: w3schools
  7. HTML: Argentina national football team
  8. SAS: SAS Files - GeeksforGeeks
  9. SPSS: SPSS Files - GeeksforGeeks
  10. Stata: Applied Regression Analysis by Fox Data Files
  11. Matlab: Cross-position activity recognition | Kaggle
  12. बड़ा डेटासेट: US Accidents (2016 - 2021)

अंतिम विचार

R बॉक्स से बाहर ही CSV और Excel से लेकर SQL डेटाबेस और सांख्यिकीय सॉफ़्टवेयर फ़ाइलों तक, कई डेटा फ़ॉर्मैट संभालता है। डेटा लोड होने के बाद, आप Cleaning Data in R कोर्स के साथ क्लीनिंग पर आगे बढ़ सकते हैं, फिर अन्वेषणात्मक विश्लेषण और विज़ुअलाइज़ेशन पर।

इस ट्यूटोरियल में, हमने बेहतर स्टोरेज और प्रदर्शन के लिए लोकप्रिय R पैकेजों का उपयोग करके हर तरह के डेटासेट लोड करना सीखा। यदि आप R के साथ अपना डेटा साइंस करियर शुरू करना चाहते हैं, तो हमारा Data Scientist with R करियर ट्रैक देखें। इसमें 24 इंटरैक्टिव कोर्स हैं जो आपको R प्रोग्रामिंग, सांख्यिकीय विश्लेषण, डेटा हैंडलिंग, और प्रेडिक्टिव विश्लेषण के बारे में सब कुछ सिखाएँगे। आप ट्रैक पूरा करने के बाद प्रमाणन परीक्षा भी दे सकते हैं। 

साथ ही Import Data Into R DataLab वर्कबुक भी देखें, जिसमें सोर्स कोड, आउटपुट और डेटा रिपॉज़िटरी शामिल है। आप एक कॉपी बनाकर स्वयं सीखना शुरू कर सकते हैं।

R में डेटा इम्पोर्ट करते समय अक्सर पूछे जाने वाले प्रश्न (FAQs)

FAQ: R में read.csv() और read_csv() में क्या अंतर है?

R में read.csv() और read_csv() के बीच मुख्य अंतर ये हैं:

  1. मूल:
    • read.csv() base R फ़ंक्शन है।
    • read_csv() tidyverse के readr पैकेज से आता है।
  2. प्रदर्शन:
    • read.csv() धीमा है और बड़े डेटासेट के लिए कम ऑप्टिमाइज़्ड है।
    • read_csv() तेज़ है और कुशल डेटा रीडिंग के लिए डिज़ाइन किया गया है।
  3. आउटपुट:
    • read.csv() base R का data frame लौटाता है।
    • read_csv() tibble लौटाता है, जो tidyverse वर्कफ़्लोज़ के साथ बेहतर समेकित होता है

स्ट्रिंग हैंडलिंग, एरर रिपोर्टिंग और डिलिमिटर सपोर्ट में भी कुछ छोटे लेकिन महत्वपूर्ण अंतर हैं।

 

मैं Google Sheets फ़ाइल को R में कैसे इम्पोर्ट करूँ?

googlesheets4 पैकेज का उपयोग करें। पब्लिक शीट्स के लिए, ऑथेंटिकेशन स्किप करने हेतु पहले gs4_deauth() कॉल करें, फिर Google Sheet URL या शीट ID के साथ read_sheet() उपयोग करें। प्राइवेट शीट्स के लिए, gs4_auth() आपको अपने Google खाते से लॉगिन करने का संकेत देगा। पैकेज इंस्टॉल करने के लिए install.packages("googlesheets4") चलाएँ।

R में बड़े CSV फ़ाइल को तेज़ी से पढ़ने का तरीका क्या है?

R में बड़े CSV फ़ाइलों के लिए data.table::fread() सबसे तेज़ विकल्प है। यह कॉलम सेपरेटर्स स्वतः पहचानता है, हैडर संभालता है, और मल्टीथ्रेडेड रीडिंग उपयोग करता है। 1 GB से बड़ी फ़ाइलों के लिए, fread() read.csv() या read_csv() से कई गुना तेज़ हो सकता है। यदि आपकी फ़ाइल Parquet फ़ॉर्मैट में है, तो कॉलमनर डेटा के लिए arrow::read_parquet() और भी तेज़ है।

मैं REST API से R में डेटा कैसे इम्पोर्ट करूँ?

HTTP रिक्वेस्ट बनाने के लिए httr2 पैकेज और JSON रिस्पॉन्स पार्स करने के लिए jsonlite::fromJSON() उपयोग करें। सामान्य वर्कफ़्लो ऐसा दिखता है: resp <- request("https://api.example.com/data") |> req_perform(), फिर data <- resp |> resp_body_json()। पुराने API के लिए, httr पैकेज GET() और content() के साथ इसी तरह काम करता है।

क्या मैं R में Parquet फ़ाइलें इम्पोर्ट कर सकता/सकती हूँ?

हाँ। arrow पैकेज को install.packages("arrow") से इंस्टॉल करें और Parquet फ़ाइलें लोड करने के लिए arrow::read_parquet("file.parquet") उपयोग करें। Arrow क्लाउड स्टोरेज (S3, GCS) से पढ़ने का समर्थन भी करता है और open_dataset() के ज़रिए मेमोरी से बड़े डेटासेट प्रोसेस कर सकता है।

विषय