R में data.table के साथ Data Manipulation
Matt Dowle, Arun Srinivasan
Instructors, DataCamp
मान लीजिए आप कॉलम "y" की दूसरी पंक्ति को 10 करना चाहते हैं
df <- data.frame(x = 1:5, y = 6:10)
df
x y
1 6
2 7
df$y[2] <- 10
R < v3.1.0 में, इस ऑपरेशन से पूरे data.frame की डीप कॉपी बनती थी
# R v3.1.0 से पहले अंदरूनी तौर पर क्या होता था
tmp <- <deep copy of "df">
tmp$y[2] <- 10
df <- tmp
v3.1.0 में सुधार कर केवल अपडेट हुए कॉलम की डीप कॉपी बनाई गई
इस मामले में, नीचे df पर किए ऑपरेशन में सिर्फ a और b कॉलम की डीप कॉपी होती है
df <- data.frame(a = 1:3, b = 4:6, c = 7:9, d = 10:12)
df[1:2] <- lapply(df[1:2], function(x) ifelse(x%%2, x, NA))
df
a b c d
1 NA 7 10
NA 5 8 11
3 NA 9 12
data.table कॉलम्स को जगह पर ही, यानी रेफ़रेन्स द्वारा अपडेट करता है
मतलब, परिणाम को किसी वैरिएबल में दोबारा असाइन करने की जरूरत नहीं पड़ती
मान बदलते समय किसी कॉलम की कॉपी नहीं बनती
कॉलम्स को रेफ़रेन्स से जोड़ने/अपडेट/हटाने के लिए data.table नया ऑपरेटर := उपयोग करता है
batrips[, c("is_dur_gt_1hour", "week_day") := list(duration > 3600, wday(start_date))]# एक सिंगल कॉलम जोड़ते समय quotes ज़रूरी नहीं हैं batrips[, is_dur_gt_1hour := duration > 3600]
batrips[, `:=`(is_dur_gt_1hour = NULL,
start_station = toupper(start_station))]
R में data.table के साथ Data Manipulation