मेरे पास नीचे उल्लेखित डेटाफ्रेम है:
structure(
list(ID = c("P-1", " P-1", "P-1", "P-2", "P-3", "P-4", "P-5", "P-6", "P-7",
"P-8"),
Date = c("2020-03-16 12:11:33", "2020-03-16 13:16:04",
"2020-03-16 06:13:55", "2020-03-16 10:03:43",
"2020-03-16 12:37:09", "2020-03-16 06:40:24",
"2020-03-16 09:46:45", "2020-03-16 12:07:44",
"2020-03-16 14:09:51", "2020-03-16 09:19:23"),
Status = c("SA", "SA", "SA", "RE", "RE", "RE", "RE", "XA", "XA", "XA"),
Flag = c("L", "L", "L", NA, "K", "J", NA, NA, "H", "G"),
Value = c(5929.81, 5929.81, 5929.81, NA, 6969.33, 740.08, NA, NA, 1524.8,
NA),
Flag2 = c("CL", "CL", "CL", NA, "RY", "", NA, NA, "", NA),
Flag3 = c(NA, NA, NA, NA, "RI", "PO", NA, "SS", "DDP", NA)),
.Names=c("ID", "Date", "Status", "Flag", "Value", "Flag2", "Flag3"),
row.names=c(NA, 10L), class="data.frame")
मैं नीचे उल्लेख कोड का उपयोग कर रहा हूँ:
df %>% mutate(L = ifelse(Flag == "L",1,0),
K = ifelse(Flag == "K",1,0),
# etc for Flag) %>%
mutate(sub_status = NA) %>%
mutate(sub_status = ifelse(!is.na(Flag2) & Flag3 == 0, "a", sub_status),
sub_status = ifelse(is.na(Flag2) & Flag3 != 0, "b", sub_status),
# etc for sub-status) %>%
mutate(value_class = ifelse(0 <= Value & Value <= 15000, "0-15000",
"15000-50000")) %>%
group_by(Date, status, sub_status, value_class) %>%
summarise(L = sum(L),
K = sum(K),
# etc
count = n())
जो मुझे निम्नलिखित आउटपुट प्रदान करता है:
Date Status sub_status value_class G H I J K L NA Count
2020-03-20 SA a 0-15000 0 0 0 0 1 1 0 2
2020-03-20 SA b 0-15000 0 0 0 0 1 0 0 1
................
................
मैं निम्नलिखित आउटपुट प्राप्त करना चाहता हूं DF
, जहां Status
कॉलम में अलग-अलग 3 मान हैं और जिनके Flag2
मान या [null] या NA हैं और अंत में Flag3
कॉलम में [null] या NA के साथ अलग-अलग 7 मान हैं। एक अलग के लिए ID
हमारे पास Flag3
कॉलम की कई प्रविष्टि हैं ।
मुझे Value
0-15000, 15000-50000 जैसे 3 समूह बनाकर, निम्न डेटाफ़्रेम तैयार करने की आवश्यकता है।
- यदि एक अलग आईडी के लिए
Flag2
0 या [null] / NA के अलावा कुछ मूल्य है, लेकिन 0 या [null] / NAFlag3
का मान है तो यह होगाa
। - अगर एक अलग आईडी के लिए
Flag3
0 या [null] / NA के अलावा कुछ मूल्य है, लेकिनFlag2
मूल्य 0 या [null] / NA है तो यह होगाb
- एक विशिष्ट आईडी के लिए दोनों हैं
Flag2
औरFlag3
कुछ की तुलना में 0 या [अशक्त] अन्य महत्व है / एनए तो यह होगाc
- तो एक अलग आईडी के लिए दोनों
Flag2
औरFlag3
मान 0 या [अशक्त] / एनए यह होगा हैd
मैं निम्नलिखित संरचना में स्तंभ percent
और Total
स्तंभ के साथ निम्नलिखित संरचना की व्यवस्था करना चाहता हूं ।
मैंने प्रतिशत का उल्लेख किया है 2/5
कि यह दिखाने के लिए कि स्थिति कुल sub_status
से विभाजित की जाएगी जबकि उनके संबंधित द्वारा विभाजित की जाएगी Status
।
16/03/2020 0 - 15000 15000 - 50000
Status count percent L K J H G [Null] count percent L K J H G [Null] Total
SA 1 1/8 (12.50%) 1 0 0 0 0 0 0 - 0 0 0 0 0 0 1
a 1 1/1(100.00%) 1 0 0 0 0 0 0 - 0 0 0 0 0 0 1
b 0 - 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0
c 0 - 1 0 0 0 0 0 0 - 0 0 0 0 0 0 0
d 0 - 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0
RE 4 50.00% 0 1 1 0 0 2 0 - 0 0 0 0 0 0 4
a 0 - 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0
b 1 25.00% 0 0 1 0 0 1 0 - 0 0 0 0 0 0 1
c 1 25.00% 0 1 0 0 0 1 0 - 0 0 0 0 0 0 1
d 2 50.00% 0 0 0 0 0 2 0 - 0 0 0 0 0 0 2
XA 3 37.50% 0 0 0 1 1 1 0 - 0 0 0 0 0 0 3
a 0 - 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0
b 2 66.67% 0 0 0 1 0 1 0 - 0 0 0 0 0 0 2
c 0 - 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0
d 1 33.33% 0 0 0 0 1 0 0 - 0 0 0 0 0 0 1
Total 8 100.00% 1 1 0 0 1 3 0 - 0 0 0 0 0 0 8
मैंने नवीनतम दिनांक के आधार पर आवश्यक आउटपुट का उल्लेख किया है जो 16/03/2020 है, यदि डेटाफ़्रेम startdate
में आउटपुट डेटाफ़्रेम में सभी मान 0 रखने के अनुसार नवीनतम तारीख नहीं है । प्रतिशत कॉलम सिर्फ उस संदर्भ के लिए है जिसकी गणना प्रतिशत मानों में की जाएगी।
इसके अलावा, मैं संरचना को स्थिर रखना चाहता हूं। उदाहरण के लिए, यदि किसी पैरामीटर के लिए एक दिन के लिए आउटपुट मौजूद नहीं है, तो आउटपुट संरचना 0 मान के साथ समान होगी।
उदाहरण के लिए, मान लीजिए 17/03/2020
कि किसी भी स्थिति के साथ कोई पंक्ति नहीं है SA
या c
उस स्थान के उप- धारक को उस मान के साथ आउटपुट में उप- धारक नहीं होना चाहिए 0
।
dput
पसंद के डाटासेट से शुरू कर सकते हैं - यह तीसरा कोड ब्लॉक है। पिछला कोड प्रासंगिक नहीं दिखता है क्योंकि आप आउटपुट के साथ सामग्री लगते हैं।
2/5
केवल प्रतिनिधित्व उद्देश्य के लिए रखा है । प्रतिशत चिह्न के साथ केवल 2 दशमलव बिंदु के साथ प्रतिशत मूल्य होगा।