আমার নিচে উল্লিখিত ডেটাফ্রেম রয়েছে:
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
এর মানগুলি বা [নাল] বা এনএ রয়েছে এবং অবশেষে Flag3
কলামে [নাল] বা এনএ সহ স্বতন্ত্র 7 মান রয়েছে। একটি স্বতন্ত্র ID
জন্য আমাদের Flag3
কলামের একাধিক এন্ট্রি আছে ।
Value
0-15000, 15000-50000 এর মতো 3 টি গ্রুপ তৈরি করে আমাকে নিম্নলিখিত ডেটাফ্রেম তৈরি করতে হবে ।
- কোনও স্বতন্ত্র আইডির জন্য যদি
Flag2
0 বা [নাল] / এনএ বাদে কিছু মান থাকে তবে 0 বা [নাল] / এনএFlag3
মান হয় তবে তা হবেa
। - কোনও স্বতন্ত্র আইডির জন্য যদি
Flag3
0 বা [নাল] / এনএ ব্যতীত কিছু মান থাকে তবে 0 বা [নাল] / এনএFlag2
মান হয় তবে তা হবেb
- একটি স্বতন্ত্র ID 'র জন্য উভয় তাহলে
Flag2
&Flag3
কিছু চেয়ে 0 বা [নাল] অন্য মূল্য আছে / এন তারপর এটি হবেc
- যদি একটি স্বতন্ত্র ID 'র জন্য উভয়
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 দশমিক পয়েন্ট সহ শতাংশের মান থাকবে।