data.table से कॉलम चुनना

R में data.table के साथ Data Manipulation

Matt Dowle, Arun Srinivasan

Instructors, DataCamp

data.table सिंटैक्स का सामान्य फॉर्म (Recap)

दूसरा आर्ग्युमेंट j कॉलम को select (और उन पर compute) करने के लिए होता है

# data.table सिंटैक्स का सामान्य फॉर्म
DT[i, j, by]
   |  |  |
   |  |  --> किस पर group करें?
   |  -----> क्या करें?
   --------> किन rows पर?
R में data.table के साथ Data Manipulation

कॉलम नामों से कॉलम चुनना

j आर्ग्युमेंट कॉलम नामों के character vector को स्वीकार करता है

ans <- batrips[, c("trip_id", "duration")]
head(ans, 2)
trip_id duration
139545      435
139546      432
R में data.table के साथ Data Manipulation

कॉलम नामों से कॉलम चुनना

batrips_df <- as.data.frame(batrips)
ans <- batrips_df[, "trip_id"]
head(ans, 2)
# परिणाम एक vector है, data.frame नहीं
139545, 139546
ans <- batrips[, "trip_id"]
# अभी भी data.table है, vector नहीं
head(ans, 2) 
trip_id
139545
139546
R में data.table के साथ Data Manipulation

कॉलम नामों की जगह नंबर भी काम करते हैं

ans <- batrips[, c(2, 4)]
head(ans, 2)
duration  start_station
435       San Francisco City Hall
432       San Francisco City Hall

लेकिन हम इसे bad practice मानते हैं

# अगर कॉलम का क्रम बदल जाए, परिणाम गलत होगा
batrips[, c(2, 4)]

# क्रम कुछ भी हो, यह हमेशा सही रहेगा
batrips[, c("duration", "start_station")]
R में data.table के साथ Data Manipulation

Character vectors से कॉलम deselect करना

  • -c("col1", "col2", ...) दिए गए कॉलम को deselect करता है
  • यह सुविधा सिर्फ data.table में है
  • - की जगह ! भी उसी तरह काम करता है
# नीचे दिए गए कॉलम *छोड़कर* बाकी सब चुनें
ans <- batrips[, -c("start_date", "end_date", "end_station")]
head(ans, 1)
trip_id  duration  start_station             start_terminal  bike_id  end_terminal
139545   435       San Francisco City Hall   58              65       473 

subscription_type  zip_code
Subscriber         94612
R में data.table के साथ Data Manipulation

data.table तरीके से कॉलम चुनना

याद है पिछले चैप्टर में i आर्ग्युमेंट में कॉलम को वैरिएबल की तरह इस्तेमाल किया था?

# "i" आर्ग्युमेंट का Recap
# एक घंटे से लंबी सभी trips
batrips[duration > 3600]

इसी तरह, आप कॉलम चुनने के लिए variables की list (कॉलम नाम) इस्तेमाल कर सकते हैं

ans <- batrips[, list(trip_id, dur = duration)]
head(ans, 2)
trip_id     dur
139545      435
139546      432
R में data.table के साथ Data Manipulation

एक कॉलम चुनते समय, वैरिएबल को list() में न लपेटने पर vector मिलता है

# एक कॉलम चुनें और data.table लौटाएँ
ans <- batrips[, list(trip_id)]
head(ans ,2)
trip_id
139545
139546
# एक कॉलम चुनें और vector लौटाएँ
ans <- batrips[, trip_id]
head(ans, 2)
139545 139546
R में data.table के साथ Data Manipulation

data.table तरीके से कॉलम चुनना

.() सुविधा के लिए list() का alias है

# .() और list() एक जैसे हैं
ans <- batrips[, .(trip_id, duration)]
head(ans, 2)
trip_id duration
139545      435
139546      432
R में data.table के साथ Data Manipulation

अभ्यास करते हैं!

R में data.table के साथ Data Manipulation

Preparing Video For Download...