मेरे पास डेटा के दो सेट हैं, जिनमें प्री और पोस्ट डेटा शामिल है। उत्तरदाताओं के पास अद्वितीय आईडी होती हैं, और मैं एक सबसेट बनाना चाहता हूं जिसमें केवल उन दोनों शामिल हैं जिन्होंने सर्वेक्षणों का जवाब दिया। उदाहरण डाटासेट:दो डेटासेट में मिलान आईडी
pre.data <- data.frame(ID = c(1:10), Y = sample(c("yes", "no"), 10, replace = TRUE),
Survey = 1)
post.data <- data.frame(ID = c(1:3,6:10), Y = sample(c("yes", "no"), 8, replace = TRUE),
Survey = 2)
all.data <- rbind(pre.data, post.data)
मैं निम्नलिखित कार्य हो:
match <- function(dat1, dat2, dat3){ #dat1 is whole dataset(both stitched together)
#dat2 is pre dataset #dat3 is post dataset
selectedRows <- (dat1$ID %in% dat2$ID &
dat1$ID %in% dat3$ID)
matchdata <- dat1[selectedRows,]
return(matchdata)
}
prepost.match.data <- match(all.data, pre.data, post.data)
मुझे लगता है कि ही बात कर के इस समारोह की तुलना में एक बेहतर तरीका होना चाहिए, लेकिन मैं कैसे सोच नहीं सकता। मैंने यह कैसे किया है यह थोड़ा गन्दा लगता है। मेरा मतलब है, यह काम करता है - यह वही करता है जो मैं चाहता हूं, लेकिन मैं सोचने में मदद नहीं कर सकता कि एक बेहतर तरीका है।
मेरी माफी माँगती है अगर यह पहले से ही इसी तरह से पूछा गया है लेकिन मैं इसे खोजने में असमर्थ था - इस मामले में कृपया मुझे एक प्रासंगिक उत्तर की ओर इंगित करें।
कुछ की तरह: 'all.data [% में all.data $ आईडी% एक दूसरे को काटना (pre.data $ आईडी , post.data $ आईडी),] '? – Arun