Read, write and view data using data frames

एक data frame R की table है: data.frame() से एक बनाइए, str/head/summary/View से inspect कीजिए, dim/nrow/ncol से इसे measure कीजिए, और write.csv(row.names = FALSE) से इसे वापस save कीजिए।

9 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

वह shape जिसमें statistics असल में रहती है

Vectors अकेले columns ले जाते थे। पर CampusPulse survey चार columns चौड़ा है: roll (numbers), city (text), stay (categories), screen time (numbers): अलग-अलग types, साथ यात्रा करते हुए, प्रति student एक row।

इसके लिए R का container data frame है: वह type जो read.csv पहले ही आपको दे चुकी है, pandas के DataFrame का ancestor, और वह shape जिस पर इस subject का बचा हर lesson काम करता है।

आज: एक बनाइए, inspect कीजिए, measure कीजिए, और save कीजिए: daily verbs।

Theory

Stapled vectors का एक register

Class register की कल्पना कीजिए: roll numbers का एक column, names का एक, attendance का एक: हर column अपनी तरह का data, सभी rows aligned ताकि row 7 हर जगह वही student हो।

एक data frame बिल्कुल यही है: बराबर length के vectors पहलू से stapled: हर column एक type (एक vector), पूरी चीज़ एक table। एक column बाहर खींचिए ($) और आप वापस एक vector पर हैं, हर vector skill अभी भी काम करते हुए।

Practical

बनाना, inspect करना, measure करना, save करना

# build one by hand (usually read.csv does this for you)
survey <- data.frame(
  roll   = c(101, 102, 103, 104),
  city   = c("Surat", "Navsari", "Surat", "Bardoli"),
  screen = c(120, 90, 240, 150)
)

# inspect
head(survey, 2)     # first 2 rows
str(survey)         # structure: types per column
summary(survey)     # per-column statistics (see below)
View(survey)        # RStudio spreadsheet window: CAPITAL V

# measure
nrow(survey)        # [1] 4
ncol(survey)        # [1] 3
dim(survey)         # [1] 4 3
names(survey)       # "roll" "city" "screen"

# a column is just a vector again
mean(survey$screen)     # [1] 150

# save: row.names = FALSE, always
write.csv(survey, "survey_out.csv", row.names = FALSE)

Theory

summary(): एक command में पुराने दोस्त

Screen column के लिए, summary(survey) print करता है:

Min. 1st Qu. Median Mean 3rd Qu. Max.

90 112.5 135 150 172.5 240

उस row को फिर से धीरे-धीरे पढ़िए: minimum, Q1, median, Q3, maximum: box-plot lesson का five-number summary, plus mean: हर numeric column के लिए एक साथ compute हुआ।

Mean (150) median (135) से ऊपर? Right skew, आपकी Unit 1 training कहती है। एक command, और पूरी descriptive-statistics toolkit report करती है।

Quiz

एक student write.csv(survey, "out.csv") से save करता है (कोई row.names argument नहीं)। कल reload करने पर एक mystery पहला column X दिखता है जिसमें 1, 2, 3, 4 है। क्या हुआ?

  1. R ने अपने row numbers file में लिख दिए; write.csv(..., row.names = FALSE) इसे रोकता है
  2. Saving के दौरान file corrupt हो गई
  3. read.csv हमेशा एक X column जोड़ता है
  4. Roll column का नाम X कर दिया गया
Show the answer

R ने अपने row numbers file में लिख दिए; write.csv(..., row.names = FALSE) इसे रोकता है

Default रूप से write.csv data frame के ROW NAMES (1, 2, 3...) को एक असली column के रूप में export करता है, जो reload पर invented नाम X के नीचे आता है: फिर से save कीजिए और वे बढ़ते हैं। इलाज है आदत row.names = FALSE: BCA303 के pandas वाले to_csv index=False जैसी ही बीमारी और इलाज (वहाँ mystery column को 'Unnamed: 0' कहा जाता था)। वही lesson, दूसरी language: exporters को बताना ज़रूरी है कि अपनी internal numbering न भेजें।

Think first

चार outputs अंदाज़ा लगाइए

ऊपर वाले survey data frame का इस्तेमाल करते हुए (4 rows: screens 120, 90, 240, 150), अंदाज़ा लगाइए हर एक क्या print करता है, फिर tap कीजिए:

1. dim(survey)

2. survey$screen > 100

3. mean(survey$screen > 100)

4. view(survey)

Show the answer

1. [1] 4 3: rows फिर columns।

2. TRUE FALSE TRUE TRUE: एक logical vector ($ ने एक vector खींचा; comparisons vectorise होते हैं)।

3. 0.75: 100 से ऊपर का proportion: mean-of-condition idiom फिर वापस।

4. Error: could not find function "view": viewer View() है, capital V: case sensitivity कभी नहीं सोती।

अगर आपने सभी चार सही किए, तो vector lessons और data frame अभी click हुए: columns VECTORS हैं।

Watch out

रोज़ की चूकें

view() बनाम View(): lowercase fail होता है: वह एक capital letter जो beginners सबसे ज़्यादा भूलते हैं।

हर write.csv पर row.names = FALSE, वरना हर reload पर X column परेशान करता है।

$ भी case-sensitive है: survey$Screen NULL देता है (error नहीं!) जब column screen है: एक silent NULL जो अगली line crash कर देता है। जब कोई column "ग़ायब" हो जाए तो names(df) check कीजिए।

Theory

असली काम तक पुल

अब आप data को round-trip कर सकते हैं: read.csv अंदर, str/summary से audit, $ से compute, write.csv बाहर: वही loop जो आपने pandas में चलाया, एक language ऊपर। यहाँ से subject घूमना बंद करता है और काम शुरू करता है: अगला lesson इस data frame को slice करता है (condition से rows, नाम से columns): SQL के WHERE और pandas के masks का R जवाब: वही ख़ूबसूरत idea से आपकी तीसरी मुलाक़ात।

Summary

Key takeaways

  • एक data frame = बराबर-length के vectors columns के रूप में staple किए गए: प्रति column एक type, प्रति table mixed types।
  • data.frame() से बनाइए या read.csv से import कीजिए; df$col एक column को vector के रूप में निकालता है।
  • Inspect कीजिए: head/tail, str (types), summary (प्रति column five-number summary + mean), View (capital V)।
  • Measure कीजिए: nrow, ncol, dim, names।
  • write.csv(df, file, row.names = FALSE) से save कीजिए: R का index=False।
  • ग़लत-case का column name error नहीं, silent NULL देता है।
  • Memory hook: stapled vectors का एक register।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Introduction to R and working with Data

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Read, write and view data using data frames · Statistical Methods and Data Analysis (MDC-03) · Gri-Learn