मैं निम्नलिखित कार्य के साथ कुछ मदद की सराहना करता हूं: प्रत्येक डेटा के लिए नीचे दिए गए डेटा फ्रेम से (C
), मैं अंतिम प्रविष्टि को कॉलम d_2
के तहत अंतिम प्रविष्टि घटा देना चाहता हूं प्रविष्टि और फिर परिणामों को एक ही आईडी युक्त एक और डेटाफ्रेम में स्टोर करें। मैं इसे अपने प्रारंभिक डेटा फ्रेम के साथ विलय कर सकता हूं। कृपया ध्यान दें कि इस क्रम में घटाव होना चाहिए (प्रत्येक id
के लिए अंतिम प्रविष्टि शून्य पहली प्रविष्टि)।समूहित डेटा में पिछली प्रविष्टि से पहली प्रविष्टि को घटाएं
id <- c("A1", "A1", "B10","B10", "B500", "B500", "C100", "C100", "C100", "D40", "D40", "G100", "G100")
d_1 <- c(rep(1.15, 2), rep(1.44, 2), rep(1.34, 2), rep(1.50, 3), rep(1.90, 2), rep(1.59, 2))
set.seed(2)
d_2 <- round(runif(13, -1, 1), 2)
C <- data.frame(id, d_1, d_2)
id d_1 d_2
A1 1.15 -0.63
A1 1.15 0.40
B10 1.44 0.15
B10 1.44 -0.66
B500 1.34 0.89
B500 1.34 0.89
C100 1.50 -0.74
C100 1.50 0.67
C100 1.50 -0.06
D40 1.90 0.10
D40 1.90 0.11
G100 1.59 -0.52
G100 1.59 0.52
वांछित परिणाम:
id2 <- c("A1", "B10", "B500", "C100", "D40", "G100")
difference <- c(1.03, -0.81, 0, 0.68, 0.01, 1.04)
diff_df <- data.frame(id2, difference)
id2 difference
A1 1.03
B10 -0.81
B500 0.00
C100 0.68
D40 0.01
G100 1.04
मैं ddply
का उपयोग कर पहली और आखिरी प्रविष्टियों प्राप्त करने के लिए द्वारा इस प्रयास किया, लेकिन मैं वास्तव में "समारोह का अनुक्रमण के साथ संघर्ष कर रहा हूँ
यहाँ कोड है वांछित परिणाम प्राप्त करने के लिए दूसरे कोड (नीचे) में तर्क "।
C_1 <- ddply(C, .(id), function(x) x[c(1, nrow(x)), ])
ddply(C_1, .(patient), function)
ईमानदारी से कहूं तो मैं ddply साथ बहुत परिचित नहीं हूँ पैकेज-मैं कोड ऊपर एक और post से ढेर एक्सचेंज पर मिला है।
मेरे मूल डेटा एक groupedData है और मेरा मानना है कि यह आ रहा का एक और तरीका gapply
उपयोग कर रहा है, लेकिन फिर मैं यहाँ (आमतौर पर एक समारोह) तीसरा तर्क के साथ संघर्ष कर रहा हूँ
grouped_C <- groupedData(d_1 ~ d_2 | id, data = C, FUN = mean, labels = list(x = "", y = ""), units = list(""))
x1 <- gapply(grouped_C, "d_2", first_entry)
x2 <- gapply(grouped_C, "d_2", last_entry)
जहां first_entry और last_entry कार्य हैं मुझे पहली और आखिरी प्रविष्टियां प्राप्त करने में मदद करने के लिए। मैं इसके साथ अंतर प्राप्त कर सकता हूं: x2 - x1
। हालांकि, मुझे यकीन नहीं है कि उपरोक्त कोड (शायद सिर या पूंछ के साथ करने के लिए) में first_entry और last_entry के रूप में इनपुट करना क्या है?
किसी भी मदद की बहुत सराहना की जाएगी।
अपने जवाब के लिए धन्यवाद, बहुत सराहना। क्या आप सिंटैक्स और कोड के विभिन्न हिस्सों को समझाते हैं? आदि। यह मेरा पहला समय इस पैकेज का उपयोग कर रहा है। –
@ जॉन निश्चित। मैंने अपने जवाब में परिचालनों की व्याख्या करने के लिए टिप्पणियां जोड़ दीं। 'Dplyr' पर अधिक जानकारी के लिए, पैकेज के लिए इस परिचय पर एक नज़र डालें (http://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html) –
@ startneR-cool name रास्ते से! बहुत बहुत धन्यवाद, टिप्पणियां बहुत उपयोगी थीं लेकिन मैं दस्तावेज के माध्यम से भी जाऊंगा। धन्यवाद! –