R में डेटा आयात करें: CSV, Excel, SPSS, Stata, SAS फ़ाइलें पढ़ें
डेटा विभिन्न प्रारूपों में मौजूद हो सकता है। प्रत्येक प्रारूप के लिए R एक विशिष्ट फ़ंक्शन और तर्क है। यह ट्यूटोरियल बताता है कि डेटा को R में कैसे आयात किया जाए।
सीएसवी पढ़ें
सबसे व्यापक रूप से डेटा स्टोर करने वाले में से एक .csv (अल्पविराम से अलग किए गए मान) फ़ाइल स्वरूप है। R स्टार्ट-अप के दौरान लाइब्रेरीज़ की एक सरणी लोड करता है, जिसमें utils पैकेज भी शामिल है। यह पैकेज reading.csv() फ़ंक्शन के साथ संयुक्त csv फ़ाइलों को खोलने के लिए सुविधाजनक है। read.csv के लिए सिंटैक्स यहाँ दिया गया है
read.csv(file, header = TRUE, sep = ",")
तर्क:
- पट्टिका: पथ जहाँ फ़ाइल संग्रहीत है
- हैडर: पुष्टि करें कि फ़ाइल में हेडर है या नहीं, डिफ़ॉल्ट रूप से, हेडर TRUE पर सेट होता है
- सितम्बर: चर को विभाजित करने के लिए उपयोग किया जाने वाला प्रतीक। डिफ़ॉल्ट रूप से, `,`.
हम डेटा फ़ाइल नाम mtcats पढ़ेंगे। csv फ़ाइल ऑनलाइन संग्रहीत है। यदि आपकी .csv फ़ाइल स्थानीय रूप से संग्रहीत है, तो आप कोड स्निपेट के अंदर PATH को बदल सकते हैं। इसे ' ' के अंदर लपेटना न भूलें। PATH को एक स्ट्रिंग मान होना चाहिए।
मैक उपयोगकर्ता के लिए, डाउनलोड फ़ोल्डर का पथ है:
"/Users/USERNAME/Downloads/FILENAME.csv"
विंडोज़ उपयोगकर्ता के लिए:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
ध्यान रखें कि, हमें हमेशा फ़ाइल नाम का एक्सटेंशन निर्दिष्ट करना चाहिए।
- . सीएसवी
- . Xlsx
- .txt
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
उत्पादन
## [1] 12
class(df$X)
उत्पादन
## [1] "factor"
R, डिफ़ॉल्ट रूप से, फ़ैक्टर के रूप में वर्ण मान लौटाता है। हम stringsAsFactors = FALSE जोड़कर इस सेटिंग को बंद कर सकते हैं।
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
उत्पादन
## [1] "character"
चर X के लिए वर्ग अब एक वर्ण है।
एक्सेल फ़ाइलें पढ़ें
एक्सेल फ़ाइलें डेटा विश्लेषकों के बीच बहुत लोकप्रिय हैं। स्प्रेडशीट के साथ काम करना आसान है और लचीला है। R एक्सेल स्प्रेडशीट आयात करने के लिए एक लाइब्रेरी readxl से सुसज्जित है।
इस कोड का प्रयोग करें
require(readxl)
यह जाँचने के लिए कि क्या readxl आपकी मशीन में इंस्टॉल है। यदि आप r-conda-essential के साथ r इंस्टॉल करते हैं, तो लाइब्रेरी पहले से इंस्टॉल है। आपको कमांड विंडो में यह देखना चाहिए:
उत्पादन
Loading required package: readxl.
यदि पैकेज बाहर नहीं निकलता है, तो आप इसे conda के साथ स्थापित कर सकते हैं पुस्तकालय या टर्मिनल में, conda install -c mittner r-readxl का उपयोग करें।
एक्सेल फ़ाइलों को आयात करने हेतु लाइब्रेरी लोड करने हेतु निम्नलिखित कमांड का उपयोग करें।
library(readxl)
readxl_उदाहरण()
हम इस ट्यूटोरियल के दौरान readxl पैकेज में शामिल उदाहरणों का उपयोग करते हैं।
कोड का प्रयोग करें
readxl_example()
लाइब्रेरी में उपलब्ध सभी स्प्रेडशीट देखने के लिए.
clippy.xls नामक स्प्रेडशीट का स्थान जांचने के लिए, सरल उपयोग करें
readxl_example("geometry.xls")
यदि आप R को conda के साथ स्थापित करते हैं, तो स्प्रेडशीट Anaconda3/lib/R/library/readxl/extdata/filename.xls में स्थित होती हैं
रीड_एक्सेल()
जब xls और xlsx एक्सटेंशन को खोलने की बात आती है तो read_excel() फ़ंक्शन बहुत उपयोगी होता है।
सिंटैक्स है:
read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE) arguments: -PATH: Path where the excel is located -sheet: Select the sheet to import. By default, all -range: Select the range to import. By default, all non-null cells -col_names: Select the columns to import. By default, all non-null columns
हम readxl लाइब्रेरी से स्प्रेडशीट आयात कर सकते हैं और पहली शीट में कॉलमों की संख्या गिन सकते हैं।
# Store the path of `datasets.xlsx`
example <- readxl_example("datasets.xlsx")
# Import the spreadsheet
df <- read_excel(example)
# Count the number of columns
length(df)
उत्पादन
## [1] 5
एक्सेल_शीट्स()
फ़ाइल datasets.xlsx 4 शीट से बनी है। हम excel_sheets() फ़ंक्शन का उपयोग करके पता लगा सकते हैं कि वर्कबुक में कौन सी शीट उपलब्ध हैं
example <- readxl_example("datasets.xlsx")
excel_sheets(example)
उत्पादन
[1] "iris" "mtcars" "chickwts" "quakes"
यदि किसी वर्कशीट में कई शीट शामिल हैं, तो शीट तर्कों का उपयोग करके किसी विशेष शीट का चयन करना आसान है। हम शीट का नाम या शीट इंडेक्स निर्दिष्ट कर सकते हैं। हम सत्यापित कर सकते हैं कि क्या दोनों फ़ंक्शन समान आउटपुट को समान() के साथ लौटाते हैं।
example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)
उत्पादन
## [1] TRUE
हम दो तरीकों से नियंत्रित कर सकते हैं कि कौन सी कोशिकाओं को पढ़ना है
- n पंक्तियाँ वापस करने के लिए n_max तर्क का उपयोग करें
- cell_rows या cell_cols के साथ संयुक्त श्रेणी तर्क का उपयोग करें
उदाहरण के लिए, हम पहली पांच पंक्तियों को आयात करने के लिए n_max को 5 के बराबर सेट करते हैं।
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
यदि हम col_names को FALSE में बदलते हैं, तो R स्वचालित रूप से हेडर बना देता है।
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
आईरिस_नो_हेडर
डेटा फ़्रेम iris_no_header में, R ने X__1, X__2, X__3, X__4 और X__5 नामक पाँच नए वेरिएबल बनाए
हम स्प्रेडशीट में पंक्तियों और स्तंभों का चयन करने के लिए तर्क श्रेणी का भी उपयोग कर सकते हैं। नीचे दिए गए कोड में, हम श्रेणी A1 से B5 का चयन करने के लिए एक्सेल शैली का उपयोग करते हैं।
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
उत्पादन
## [1] 4 2
हम देख सकते हैं कि example_1 4 कॉलम के साथ 2 पंक्तियाँ लौटाता है। डेटासेट में हेडर है, यही कारण है कि आयाम 4×2 है।
दूसरे उदाहरण में, हम फ़ंक्शन cell_rows() का उपयोग करते हैं जो रिटर्न की जाने वाली पंक्तियों की श्रेणी को नियंत्रित करता है। यदि हम 1 से 5 पंक्तियों को आयात करना चाहते हैं, तो हम cell_rows(1:5) सेट कर सकते हैं। ध्यान दें कि, cell_rows(1:5) वही आउटपुट देता है जो cell_rows(5:1) देता है।
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
उत्पादन
## [1] 4 5
हालाँकि example_2 एक 4×5 मैट्रिक्स है। आईरिस डेटासेट में हेडर के साथ 5 कॉलम हैं। हम सभी कॉलम के हेडर के साथ पहली चार पंक्तियाँ लौटाते हैं
यदि हम उन पंक्तियों को आयात करना चाहते हैं जो पहली पंक्ति से शुरू नहीं होती हैं, तो हमें col_names = FALSE शामिल करना होगा। यदि हम range = cell_rows(2:5) का उपयोग करते हैं, तो यह स्पष्ट हो जाता है कि हमारे डेटा फ़्रेम में अब हेडर नहीं है।
iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE) iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)
We can select the columns with the letter, like in Excel.
# Select columns A and B
col <-read_excel(example, range =cell_cols("A:B"))
dim(col)
उत्पादन
## [1] 150 2
नोट: range = cell_cols(“A:B”), गैर-शून्य मान वाले सभी सेल का आउटपुट देता है। डेटासेट में 150 पंक्तियाँ हैं, इसलिए, read_excel() 150 तक की पंक्तियाँ देता है। इसे dim() फ़ंक्शन से सत्यापित किया जाता है।
read_excel() तब NA लौटाता है जब सेल में संख्यात्मक मान के बिना कोई प्रतीक दिखाई देता है। हम दो फ़ंक्शन के संयोजन से गुम मानों की संख्या गिन सकते हैं
- योग
- is.na
कोड यहाँ है
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
उत्पादन
## [1] 50
हमारे पास 50 मान लुप्त हैं, जो सेटोसा प्रजाति से संबंधित पंक्तियाँ हैं।
अन्य सांख्यिकीय सॉफ्टवेयर से डेटा आयात करें
हम स्वर्ग पैकेज के साथ विभिन्न फ़ाइल प्रारूप आयात करेंगे। यह पैकेज समर्थन करता है एसएएस, STATA और SPSS सॉफ्टवेयर। हम फ़ाइल के एक्सटेंशन के अनुसार, विभिन्न प्रकार के डेटासेट खोलने के लिए निम्नलिखित फ़ंक्शन का उपयोग कर सकते हैं:
- एसएएस: read_sas()
- STATA: read_dta() (या read_stata(), जो समान हैं)
- SPSS: read_sav() या read_por(). हमें एक्सटेंशन की जांच करनी होगी
इन फ़ंक्शन के अंदर केवल एक तर्क की आवश्यकता होती है। हमें PATH पता होना चाहिए जहाँ फ़ाइल संग्रहीत है। बस, हम SAS, STATA और SPSS से सभी फ़ाइलें खोलने के लिए तैयार हैं। ये तीनों फ़ंक्शन एक URL भी स्वीकार करते हैं।
library(haven)
हेवन कोंडा आर-एसेंशियल के साथ आता है अन्यथा पर जाएं संपर्क या टर्मिनल में conda install -c conda-forge r-haven
sas पढ़ें
हमारे उदाहरण के लिए, हम IDRE से प्रवेश डेटासेट का उपयोग करने जा रहे हैं।
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
उत्पादन
## # A tibble: 6 x 4 ## ADMIT GRE GPA RANK ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
STATA पढ़ें
STATA डेटा फ़ाइलों के लिए आप read_dta() का उपयोग कर सकते हैं। हम बिल्कुल उसी डेटासेट का उपयोग करते हैं लेकिन .dta फ़ाइल में संग्रहीत करते हैं।
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
उत्पादन
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
SPSS पढ़ें
हम SPSS फ़ाइल खोलने के लिए read_sav() फ़ंक्शन का उपयोग करते हैं। फ़ाइल एक्सटेंशन “.sav”
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
उत्पादन
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
डेटा आयात के लिए सर्वोत्तम अभ्यास
जब हम R में डेटा आयात करना चाहते हैं, तो निम्न चेकलिस्ट को लागू करना उपयोगी होता है। इससे R में डेटा को सही तरीके से आयात करना आसान हो जाएगा:
- स्प्रेडशीट के लिए सामान्य प्रारूप में प्रथम पंक्तियों को हेडर (आमतौर पर वेरिएबल्स का नाम) के रूप में उपयोग किया जाता है।
- डेटासेट को रिक्त स्थान से नाम देने से बचें; इससे इसे एक अलग चर के रूप में व्याख्यायित किया जा सकता है। वैकल्पिक रूप से, '_' या '-' का उपयोग करना पसंद करें।
- छोटे नाम पसंद किये जाते हैं
- नाम में प्रतीक शामिल न करें: यानी: exchange_rate_$_€ सही नहीं है। इसे नाम देना बेहतर होगा: exchange_rate_dollar_euro
- अन्यथा लुप्त मानों के लिए NA का प्रयोग करें; हमें बाद में प्रारूप को साफ़ करना होगा।
सारांश
निम्न तालिका R में विभिन्न प्रकार की फ़ाइल आयात करने के लिए उपयोग किए जाने वाले फ़ंक्शन को सारांशित करती है। कॉलम एक फ़ंक्शन से संबंधित लाइब्रेरी बताता है। अंतिम कॉलम डिफ़ॉल्ट तर्क को संदर्भित करता है।
| पुस्तकालय | उद्देश्य | समारोह | डिफ़ॉल्ट तर्क |
|---|---|---|---|
| utils | CSV फ़ाइल पढ़ें | read.csv() | फ़ाइल, हेडर =,सत्य, sep = “,” |
| readxl | एक्सेल फ़ाइल पढ़ें | रीड_एक्सेल() | पथ, श्रेणी = शून्य, col_names = सत्य |
| हेवन | SAS फ़ाइल पढ़ें | read_sas() | पथ |
| हेवन | STATA फ़ाइल पढ़ें | read_stata() | पथ |
| हेवन | SPSS फ़ाइल पढ़ें | read_sav() | पथ |
निम्न तालिका read_excel() फ़ंक्शन के साथ चयन को आयात करने के विभिन्न तरीकों को दर्शाती है।
| समारोह | उद्देश्य | तर्क |
|---|---|---|
| रीड_एक्सेल() | n संख्या की पंक्तियाँ पढ़ें | एन_मैक्स = 10 |
| एक्सेल की तरह पंक्तियों और स्तंभों का चयन करें | रेंज = “A1:D10” | |
| अनुक्रमणिकाओं वाली पंक्तियाँ चुनें | रेंज= सेल_पंक्तियाँ(1:3) | |
| अक्षरों वाले कॉलम चुनें | रेंज = सेल_कॉल्स(“A:C”) |







