तिथि सीमा आर के भीतर मतगणना

Aug 16 2020

यह शायद एक बहुत ही सरल समाधान है। मेरे पास दो डेटा सेट हैं। एक 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 लौटाएगा । इस मामले में, ।ADLDatatweetsc(2,1)

जवाब

YannikSuhre Aug 16 2020 at 21:12

इसलिए, यदि मैंने आपको सही ढंग से समझा है तो आपके पास उस तरह का डेटा है:

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"))

आप इसे आसानी से किसी अन्य वेक्टर को असाइन कर सकते हैं, जो तब बताता है कि यह है या नहीं।

RonakShah Aug 20 2020 at 15:23

आप उपयोग करने वाले दो वैक्टरों के प्रत्येक मूल्य के बीच के समय में अंतर 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