R Language                
            सादा-पाठ फ़ाइलों (CSV, TSV, आदि) में सारणीबद्ध डेटा पढ़ना और लिखना
        
        
            
    खोज…
वाक्य - विन्यास
- read.csv (फ़ाइल, हेडर = TRUE, sep = ",", quot = "" ", dec ="। ", fill = TRUE, comment.char =" ", ...) 
- read.csv2 (फ़ाइल, हेडर = TRUE, sep = ";", quot = "" ", dec =", ", भरें = TRUE, comment.char =" ", ...) 
- readr :: read_csv (फ़ाइल, col_names = TRUE, col_types = NULL, locale = default_locale (), na = c ("", "NA"), टिप्पणी = "", trim_ws = TRUE, छोड़ = 0, n_max = -1 , प्रगति = इंटरैक्टिव () 
- data.table :: fread (इनपुट, sep = "auto", sep2 = "auto", nrows = -1L, शीर्ष लेख = "auto", na.strings = "NA", stringsAsFactors = FALSE, क्रिया = getOption ("datatable") .verbose "), ऑटोस्टार्ट = 1 एल, स्किप = 0 एल, सेलेक्ट करें = NULL, drop = NULL, colClasses = NULL, integer64 = getOption (" datatable.integer64 "), # डिफ़ॉल्ट:" integer64 "dec = if (sep! =" " । "" ""। "और", ", col.names, check.names = FALSE, एन्कोडिंग =" अज्ञात ", स्ट्रिप.व्हाइट = TRUE, showProgress = getOption (" datatable.showProgress "), # डिफ़ॉल्ट: TRUE डेटा। तालिका = getOption ("datatable.fread.datatable") # डिफ़ॉल्ट: TRUE) 
पैरामीटर
| पैरामीटर | विवरण | 
|---|---|
| फ़ाइल | पढ़ने के लिए CSV फ़ाइल का नाम | 
| हैडर | तार्किक: .csv फ़ाइल में कॉलम नामों के साथ हेडर पंक्ति है? | 
| सितम्बर | चरित्र: प्रतीक जो प्रत्येक पंक्ति पर कोशिकाओं को अलग करता है | 
| उद्धरण | चरित्र: प्रतीक चरित्र तार उद्धृत करने के लिए इस्तेमाल किया | 
| दिसम्बर | चरित्र: प्रतीक का प्रयोग दशमलव विभाजक के रूप में किया जाता है | 
| भरण | तार्किक: जब TRUE, असमान लंबाई वाली पंक्तियों को रिक्त फ़ील्ड से भरा जाता है। | 
| comment.char | चरित्र: चरित्र सीएसवी फ़ाइल में टिप्पणी के रूप में इस्तेमाल किया। इस चरित्र की पूर्ववर्ती रेखाओं को अनदेखा किया जाता है। | 
| ... | अतिरिक्त तर्क read.tableलिए पारित किया जा सकता है | 
टिप्पणियों
ध्यान दें कि एक सादे पाठ प्रारूप में निर्यात करने से व्यापक पोर्टेबिलिटी के लिए चर कक्षाओं की तरह डेटा में एन्कोड की गई जानकारी का अधिकांश भाग बलिदान होता है। ऐसे मामलों के लिए जिन्हें इस तरह की पोर्टेबिलिटी की आवश्यकता नहीं है, एक प्रारूप जैसे .Rata या पंख अधिक उपयोगी हो सकते हैं।
अन्य प्रकार की फ़ाइलों के लिए इनपुट / आउटपुट कई अन्य विषयों में शामिल है, जो सभी इनपुट और आउटपुट से जुड़े हुए हैं।
आयात .csv फ़ाइलें
बेस आर का उपयोग करके आयात करना
 अल्पविराम से अलग मूल्य फ़ाइलें (CSV में) का उपयोग कर आयात किया जा सकता read.csv , जो लपेटता read.table , लेकिन उपयोग करता sep = "," एक अल्पविराम के परिसीमक सेट करने के लिए। 
# get the file path of a CSV included in R's utils package
csv_path <- system.file("misc", "exDIF.csv", package = "utils")
# path will vary based on installation location
csv_path
## [1] "/Library/Frameworks/R.framework/Resources/library/utils/misc/exDIF.csv"
df <- read.csv(csv_path)
df
##    Var1 Var2
## 1  2.70    A
## 2  3.14    B
## 3 10.00    A
## 4 -7.00    A
 एक उपयोगकर्ता के अनुकूल विकल्प, file.choose , निर्देशिकाओं के माध्यम से ब्राउज़ करने की अनुमति देता है: 
df <- read.csv(file.choose())
टिप्पणियाँ
-  विपरीत read.table,read.csvडिफ़ॉल्टheader = TRUE, और स्तंभ नाम के रूप में पहली पंक्ति का उपयोग करता है।
-  इन सभी कार्यों के लिए तार में परिवर्तित कर देंगे factorडिफ़ॉल्ट जब तक या तो द्वारा वर्गas.is = TRUEयाstringsAsFactors = FALSE।
-  read.csv2वेरिएंटread.csv2sep = ";"औरdec = ","उन देशों के डेटा पर उपयोग के लिए जहां अल्पविराम का उपयोग दशमलव बिंदु के रूप में और अर्धविराम को क्षेत्र विभाजक के रूप में किया जाता है।
पैकेज का उपयोग करके आयात करना
 readr पैकेज का read_csv फ़ंक्शन बहुत तेज़ प्रदर्शन, बड़ी फ़ाइलों के लिए प्रगति बार और मानक read.csv तुलना में अधिक लोकप्रिय डिफ़ॉल्ट विकल्प read.csv , जिसमें stringsAsFactors = FALSE । 
library(readr)
df <- read_csv(csv_path)
df
## # A tibble: 4 x 2
##    Var1  Var2
##   <dbl> <chr>
## 1  2.70     A
## 2  3.14     B
## 3 10.00     A
## 4 -7.00     A
Data.table के साथ आयात करना
 data.table पैकेज का परिचय समारोह fread । हालांकि यह read.table समान है, फ़ाइल के सीमांकक स्वचालित रूप से अनुमान लगाते हुए, fread आमतौर पर तेज़ और अधिक लचीला होता है। 
# get the file path of a CSV included in R's utils package
csv_path <- system.file("misc", "exDIF.csv", package = "utils")
# path will vary based on R installation location
csv_path
## [1] "/Library/Frameworks/R.framework/Resources/library/utils/misc/exDIF.csv"
dt <- fread(csv_path)
dt
##     Var1 Var2
## 1:  2.70    A
## 2:  3.14    B
## 3: 10.00    A
## 4: -7.00    A
 जहां तर्क input एक स्ट्रिंग का प्रतिनिधित्व करता है: 
-  फ़ाइल नाम ( उदाहरण के लिए "filename.csv"),
-  एक शेल कमांड जो एक फ़ाइल पर कार्य करता है ( उदाहरण के लिए "grep 'word' filename"), या
-  इनपुट ही ( उदाहरण के लिए "input1, input2 \n A, B \n C, D")।
 fread वर्ग data.table की एक वस्तु देता है, जो कि data.able के उपयोग के साथ [] data [] श्रेणी के उपयोग के लिए उपयुक्त, वर्ग data.frame से विरासत में मिलती है। एक साधारण data.frame वापस करने के लिए, FALSE लिए data.table पैरामीटर सेट करें: 
df <- fread(csv_path, data.table = FALSE)
class(df)
## [1] "data.frame"
df
##    Var1 Var2
## 1  2.70    A
## 2  3.14    B
## 3 10.00    A
## 4 -7.00    A
टिप्पणियाँ
-  freadके रूप में सभी एक ही विकल्प नहीं हैread.table। एक अनुपलब्ध तर्क हैna.comment, जो अवांछित व्यवहार में ले सकता है यदि स्रोत फ़ाइल में#शामिल है।
-  freadउपयोग केवल"quoteपैरामीटर के लिए है।
-  freadकुछ (5) लाइनों का उपयोग करता है चर प्रकार का अनुमान लगाना।
मैट्रिक्स के रूप में .tsv फ़ाइलें आयात करना (मूल R)
 बहुत से लोग फ़ाइल का पथ file.path समय फ़ाइल का उपयोग नहीं करते हैं। लेकिन अगर आप विंडोज, मैक और लिनक्स मशीनों पर काम कर रहे हैं, तो आमतौर पर paste बजाय रास्ते बनाने के लिए इसका इस्तेमाल करना अच्छा होता है। 
FilePath <- file.path(AVariableWithFullProjectPath,"SomeSubfolder","SomeFileName.txt.gz")
Data <- as.matrix(read.table(FilePath, header=FALSE, sep ="\t"))
आमतौर पर यह ज्यादातर लोगों के लिए पर्याप्त है।
कभी-कभी ऐसा होता है कि मैट्रिक्स आयाम इतने बड़े होते हैं कि मेमोरी आवंटन की प्रक्रिया को मैट्रिक्स में पढ़ते समय ध्यान में रखा जाना चाहिए, जिसका अर्थ है लाइन द्वारा मैट्रिक्स लाइन में पढ़ना।
 पिछले उदाहरण को लें, इस मामले में FilePath में FilePath % कोशिकाओं के साथ 8970 8970 आयाम वाली एक फ़ाइल है। 
system.time(expr=Data<-as.matrix(read.table(file=FilePath,header=FALSE,sep=" ") ))
 system.time कहना है कि फ़ाइल को पढ़ने के लिए 267 सेकंड का समय लिया गया था। 
   user  system elapsed
265.563   1.949 267.563
इसी तरह इस फाइल को लाइन बाय लाइन पढ़ा जा सकता है,
FilePath <- "SomeFile"
connection<- gzfile(FilePath,open="r")
TableList <- list()
Counter <- 1
system.time(expr= while ( length( Vector<-as.matrix(scan(file=connection, sep=" ", nlines=1, quiet=TRUE)) ) > 0 ) {
    TableList[[Counter]]<-Vector
    Counter<-Counter+1
})
   user  system elapsed
165.976   0.060 165.941
close(connection)
system.time(expr=(Data <- do.call(rbind,TableList)))
   user  system elapsed
  0.477   0.088   0.565
 वहाँ भी है futile.matrix पैकेज जो एक read.matrix विधि को लागू करता है, कोड खुद को वही futile.matrix जो उदाहरण 1 में वर्णित है। 
निर्यात .csv फ़ाइलें
बेस आर का उपयोग करके निर्यात करना
 डेटा का उपयोग कर एक CSV फ़ाइल में लिखा जा सकता है write.csv() : 
write.csv(mtcars, "mtcars.csv")
 सामान्य रूप से निर्दिष्ट मापदंडों में row.names = FALSE और na = "" । 
पैकेज का उपयोग करके निर्यात करना
 readr::write_csv की तुलना में काफी तेजी से होता है write.csv और न लिखने पंक्ति के नाम से करता है। 
library(readr)
write_csv(mtcars, "mtcars.csv")
एकाधिक csv फ़ाइलों को आयात करें
files = list.files(pattern="*.csv")
data_list = lapply(files, read.table, header = TRUE)
यह हर फ़ाइल को पढ़ता है और इसे सूची में जोड़ता है। बाद में, यदि सभी डेटा.फ्रेम में समान संरचना होती है तो उन्हें एक बड़े डेटा में जोड़ा जा सकता है।
df <- do.call(rbind, data_list)
निश्चित-चौड़ाई वाली फ़ाइलें आयात करना
 निश्चित-चौड़ाई वाली फाइलें पाठ फाइलें हैं जिसमें कॉलम किसी भी चरित्र के सीमांकक द्वारा अलग नहीं किए जाते हैं, जैसे , या ; , बल्कि एक निश्चित वर्ण लंबाई ( चौड़ाई ) है। डेटा आमतौर पर सफेद स्थानों के साथ गद्देदार होता है। 
एक उदाहरण:
Column1 Column2   Column3           Column4Column5 
1647    pi        'important'       3.141596.28318
1731    euler     'quite important' 2.718285.43656
1979    answer    'The Answer.'     42     42
 मान लें कि यह डेटा टेबल स्थानीय फ़ाइल constants.txt में वर्किंग डायरेक्टरी में मौजूद है। 
बेस आर के साथ आयात करना
df <- read.fwf('constants.txt', widths = c(8,10,18,7,8), header = FALSE, skip = 1)
df
#>     V1     V2                 V3         V4        V5
#> 1 1647     pi         'important'   3.14159   6.28318
#> 2 1731  euler   'quite important'   2.71828   5.43656
#> 3 1979 answer       'The Answer.'   42        42.0000
ध्यान दें:
-  कॉलम शीर्षक को किसी वर्ण द्वारा अलग करने की आवश्यकता नहीं है ( Column4Column5)
-  widthsपैरामीटर प्रत्येक स्तंभ की चौड़ाई को परिभाषित करता है
-  गैर-पृथक हेडर read.fwf()साथ पढ़ने योग्य नहीं हैं
रीडर के साथ आयात करना
library(readr)
df <- read_fwf('constants.txt', 
               fwf_cols(Year = 8, Name = 10, Importance = 18, Value = 7, Doubled = 8), 
               skip = 1)
df
#> # A tibble: 3 x 5
#>    Year    Name        Importance    Value  Doubled
#>    <int>   <chr>           <chr>     <dbl>    <dbl>
#> 1  1647      pi       'important'  3.14159  6.28318
#> 2  1731   euler 'quite important'  2.71828  5.43656
#> 3  1979  answer     'The Answer.' 42.00000 42.00000
ध्यान दें:
-  रीडर का fwf_*हेल्पर फ़ंक्शन कॉलम की लंबाई निर्दिष्ट करने के वैकल्पिक तरीके प्रदान करता है, जिसमें स्वचालित अनुमानfwf_empty(fwf_empty) शामिल है
- बेस आर की तुलना में रीड्र तेज है
- कॉलम शीर्षक डेटा फ़ाइल से स्वचालित रूप से आयात नहीं किया जा सकता है