तिथि सीमा आर के भीतर मतगणना
यह शायद एक बहुत ही सरल समाधान है। मेरे पास दो डेटा सेट हैं। एक POSIXct ट्वीट टाइमस्टैम्प का वेक्टर है और दूसरा POSIXct ADL HEAT मैप टाइमस्टैम्प का वेक्टर है।
मैं एक फ़ंक्शन बनाने की कोशिश कर रहा हूं, जो मुझे ट्वीट्स वेक्टर से तारीखें लेने देता है और प्रत्येक के लिए ADL HEAT मैप वेक्टर में टाइमस्टैम्प की संख्या की गणना करता है जो ट्वीट से एक निर्दिष्ट सीमा के भीतर आते हैं।
मेरा उद्देश्य फ़ंक्शन का निर्माण करना है जैसे कि मैं ट्वीट वेक्टर, एडीएल वेक्टर, ट्वीट्स वेक्टर से दिनों की संख्या को गिनना शुरू कर सकता हूं, और ट्वीट्स को वेक्टर से गिनती की संख्या को रोकने और वेक्टर वापस करने के लिए दिनों की संख्या। ट्वीट्स डेटा के समान लंबाई गिनता है।
मैंने पहले से ही यहां समाधान की कोशिश की, और यह काम नहीं किया: आर में तिथि सीमा में घटनाओं की संख्या की गणना करें
यहाँ एक उदाहरण है कि मैं क्या करने की कोशिश कर रहा हूँ। यहां मेरे द्वारा उपयोग किए जा रहे डेटा सेट का एक छोटा संस्करण है:
tweets <- c("2016-12-12 14:34:00 GMT", "2016-12-5 17:20:06 GMT")
ADLData <- c("2016-12-11 16:30:00 GMT", "2016-12-7 18:00:00 GMT", "2016-12-2 09:10:00 GMT")
मैं एक फ़ंक्शन बनाना चाहता हूं, चलो इसे कॉल करें countingfunction
जो मुझे पहला डेटा सेट, दूसरा एक इनपुट देता है, और वापस देखने के लिए कई दिनों तक कॉल करता है। इस उदाहरण में, मैंने 7 दिन चुने:
countingfunction(tweets, ADLData, 7)
आदर्श रूप से यह पिछले 7 दिनों के भीतर दिनांक से 7 दिनों के भीतर हुई tweets
घटनाओं में से प्रत्येक के लिए मायने रखता है या इस मामले की लंबाई के एक वेक्टर के साथ 2 लौटाएगा । इस मामले में, ।ADLData
tweets
c(2,1)
जवाब
इसलिए, यदि मैंने आपको सही ढंग से समझा है तो आपके पास उस तरह का डेटा है:
tweets <- c(as.POSIXct("2020-08-16", tz = ""), as.POSIXct("2020-08-15", tz = ""), as.POSIXct("2020-08-14", tz = ""), as.POSIXct("2020-08-13", tz = ""))
ADL <- c(as.POSIXct("2020-08-15", tz = ""), as.POSIXct("2020-08-14", tz = ""))
और आप क्या करना चाहते हैं, यह कहना है कि एक ट्वीट एडीएल तारीख सीमा के भीतर है या नहीं। ऐसा करने से यह पूरा हो सकता है:
ifelse(tweets %in% ADL, print("its in"), print("its not"))
आप इसे आसानी से किसी अन्य वेक्टर को असाइन कर सकते हैं, जो तब बताता है कि यह है या नहीं।
आप उपयोग करने वाले दो वैक्टरों के प्रत्येक मूल्य के बीच के समय में अंतर countingfunction
की मदद से लिख सकते हैं outer
और गणना कर सकते हैं difftime
।
countingfunction <- function(x1, x2, n) {
mat <- outer(x1, x2, difftime, units = 'days')
rowSums(mat > 0 & mat <= n)
}
मान लें कि आपके पास POSIXct
इन जैसे वर्ग के वैक्टर हैं :
tweets <- as.POSIXct(c("2016-12-12 14:34:00", "2016-12-5 17:20:06"), tz = 'GMT')
ADLData <- as.POSIXct(c("2016-12-11 16:30:00","2016-12-7 18:00:00",
"2016-12-2 09:10:00"), tz = 'GMT')
n <- 7
आप उन्हें निम्न प्रकार से पारित कर सकते हैं:
countingfunction(tweets, ADLData, n)
#[1] 2 1