Theory
Survey ફરી આવે છે
CampusPulse નો data survey.csv માં પડ્યો છે: 60 હરોળ, ચાર ખાનાં. તમે બરાબર આ જ આકાર પહેલાં બે વાર આયાત કરી ચૂક્યા છો: sqlite3 ના shell ના .import થી, અને pandas ના read_csv થી.
R નું રૂપ એક લીટી છે:
survey <- read.csv("survey.csv")
કોઈ import નું વિધાન નહીં, કોઈ module નહીં: data વાંચવું ભાષામાં જ જડેલું છે. આ પાઠનું કૌશલ્ય એ લીટી નથી: એ જાણવું છે કે R એની પાછળ શું કર્યું, અને કેવી રીતે તપાસવું.
Theory
જકાત અધિકારી
read.csv() એ R ની સરહદે બેઠેલો જકાત અધિકારી છે. File પ્રવેશે ત્યારે, અધિકારી:
1. પહેલી લીટીને લેબલ તરીકે વાંચે છે (header = TRUE, default).
2. દરેક ખાનાના પ્રકારને એની સામગ્રી પરથી ધારે છે: સંખ્યાઓ numeric બને, લખાણ character બને.
3. માલને data frame માં મહોર મારે છે: R નું કોષ્ટક.
સારા અધિકારીઓની પણ તપાસ થાય છે: દરેક આયાત પછી, તમે મહોર મારેલા પરિણામની તપાસ કરો છો. તપાસનું command છે str().
Practical
આયાત કરો, પછી તપાસો
# CSV: built into base R, one line
survey <- read.csv("survey.csv") # header = TRUE is the default
# THE health check after every import:
str(survey)
# 'data.frame': 60 obs. of 4 variables:
# $ roll : int 101 102 103 ...
# $ city : chr "Surat" "Navsari" ...
# $ stay : chr "hostel" "day" ...
# $ screen : num 120 90 240 ...
head(survey) # first 6 rows, eyeball the values
# Excel needs a package: INSTALL once, LOAD every session
# install.packages("readxl") # once per machine
library(readxl) # once per session
marks <- read_excel("marks.xlsx", sheet = 1)
# other delimiters: read.delim (tabs), read.csv2 (; with , decimals)
Theory
દરેક ટુકડાનો અર્થ
header = TRUE (default): લીટી 1 ખાનાંનાં નામ બને છે. header = FALSE સાથે, R નામ ઉપજાવે છે V1, V2, V3 અને તમારાં લેબલ data ની હરોળ બની જાય છે: એ જ header નો નિર્ણય જે તમે મળેલા દરેક આયાતના ઓજારમાં જોયો છે.
પ્રકારનું અનુમાન: આંકડાનું ખાનું int/num તરીકે આવે છે; લખાણવાળું કંઈ પણ character તરીકે આવે છે. (આધુનિક R હવે લખાણને આપોઆપ factors માં ફેરવતું નથી: તમે જાણીજોઈને ચઢાવો છો, આગલા પાઠમાં.)
Excel: base R .xlsx વાંચતું નથી. readxl package વાંચે છે: install.packages() યંત્ર દીઠ એક વાર, library() session દીઠ એક વાર: બે જુદી ક્રિયાઓ, અંતહીન રીતે ગૂંચવાતી.
Quiz
એક student એ ગઈકાલે install.packages("readxl") ચલાવ્યું. આજે, નવા RStudio ના session માં, read_excel("marks.xlsx") ભૂલ આપે છે: could not find function "read_excel". કેમ?
- Install કરવાથી package એક વાર disk પર આવે છે; દરેક નવા session એ હજી library(readxl) થી લોડ કરવું પડે
- Package દરરોજ ફરી install કરવું પડે
- read_excel ફક્ત CSV files પર ચાલે છે
- File ના નામને .csv નો પ્રત્યય જોઈએ
Show the answer
Install કરવાથી package એક વાર disk પર આવે છે; દરેક નવા session એ હજી library(readxl) થી લોડ કરવું પડે
બે ક્રિયાઓ, બે આયુષ્ય: install.packages() disk પર download કરે છે (યંત્ર દીઠ એક વાર); library() ચાલુ session માં લોડ કરે છે (session દીઠ એક વાર). નવું session ફક્ત base R લોડ કરીને શરૂ થાય છે, એટલે library(readxl) ચાલે નહીં ત્યાં સુધી read_excel અજાણ્યું છે. Install સામે load નો આ ભેદ R નો સૌથી વધુ પુછાતો package નો પ્રશ્ન છે, labs અને પરીક્ષાઓ બંનેમાં.
Think first
તપાસ ઘૂસણખોરને પકડે છે
str(survey) દેખાડે છે: $ screen: chr "120" "90" "absent" "240". Screen time નું ખાનું CHARACTER તરીકે આવ્યું. Tap કરતાં પહેલાં: આનું કારણ શું, એ કેમ મહત્ત્વનું છે, અને આ BCA303ની કઈ ક્ષણનું જોડિયું છે?
Show the answer
એક student ની નોંધ કહે છે "absent": ખાનામાં એક જ string, અને R ના એકસમાન-ખાનાના નિયમે દરેક સંખ્યાને લખાણમાં ફેરવી નાખી (syntax ના પાઠનો રૂપાંતરનો ફાંદો, હવે file ના સ્તરે). mean(survey$screen) હવે અશક્ય છે.
એ BCA303ના pandas/csv module માં સંખ્યાઓ strings તરીકે આવવા અને SQLite ના affinity ના આશ્ચર્યનું જોડિયું છે: લખાણનાં સ્વરૂપો કોઈ પ્રકાર વહન કરતાં નથી, એટલે આયાત કરનારા ધારે છે, અને એક ગંદું મૂલ્ય આખું ખાનું ઝેરી કરે છે. સમારકામ (NA સંભાળવું, as.numeric) બરાબર ત્યાં જ છે જ્યાં આગલો એકમ જાય છે.
Watch out
આયાતની checklist
1. File મળતી નથી? પહેલાં working directory: getwd(), પછી setwd() કે પૂરા રસ્તાથી સુધારો.
2. દરેક આયાત પછી str(): માપ બરાબર? પ્રકારો બરાબર?
3. Numeric ખાનું chr તરીકે દેખાય: કોઈ પણ આંકડાશાસ્ત્ર પહેલાં ભટકેલા લખાણનું મૂલ્ય શોધો.
4. V1, V2 જેવાં ખાનાંનાં નામ: તમારું header = FALSE (કે file માં ખરેખર header નથી).
ચાર તપાસ, દસ સેકન્ડ, અને પછીનો દરેક પાઠ ભરોસાપાત્ર data પર ચાલે છે.
Theory
એ જ ગીત, ત્રીજી ભાષા
તમારી પોતાની નિપુણતા નોંધો: header ની હરોળ, પ્રકારનું અનુમાન, working directory, આયાત ચકાસવી: આ વિચારો તમે SQLite ના shell માં શીખ્યા, pandas માં ફરી કર્યા, અને આજે એ મિનિટોમાં R માં ઊતરી ગયા. ઓજારનાં કૌશલ્યો જૂનાં થાય છે; ખ્યાલો ચક્રવૃદ્ધિથી વધે છે. આગલો પાઠ: data frame પોતે: તમે જેમાં પહેલેથી વિચારો છો એ DataFrame નો R નો જવાબ.
Summary
Key takeaways
- read.csv("file.csv") CSV ને data frame તરીકે આયાત કરે છે; header = TRUE અને અલ્પવિરામનો વિભાજક defaults છે.
- Excel ને readxl જોઈએ: install.packages() યંત્ર દીઠ એક વાર, library() SESSION દીઠ એક વાર.
- R ખાનાંના પ્રકારો ધારે છે; એક ભટકેલી string numeric ખાનાને character બનાવે છે.
- str() એ આયાત પછીની ફરજિયાત તપાસ છે: માપ વત્તા ખાના દીઠ પ્રકારો; head() હરોળ પર નજર નાખે છે.
- File-not-found લગભગ હંમેશા working directory નો અર્થ કરે છે, ખૂટતી file નો નહીં.
- Tabs માટે read.delim, અર્ધવિરામવાળી files માટે read.csv2; SPSS/JSON માટે packages છે.
- Memory hook: જકાત અધિકારી મહોર મારે છે; તમે મહોરની તપાસ કરો છો.