সঙ্গে dplyr
প্যাকেজ, আপনি ব্যবহার করতে পারেন summarise_all
, summarise_at
বা summarise_if
ফাংশন একযোগে একাধিক ভেরিয়েবল সমষ্টি করতে। উদাহরণস্বরূপ ডেটাসেটের জন্য আপনি নিম্নলিখিত হিসাবে এটি করতে পারেন:
library(dplyr)
# summarising all non-grouping variables
df2 <- df1 %>% group_by(year, month) %>% summarise_all(sum)
# summarising a specific set of non-grouping variables
df2 <- df1 %>% group_by(year, month) %>% summarise_at(vars(x1, x2), sum)
df2 <- df1 %>% group_by(year, month) %>% summarise_at(vars(-date), sum)
# summarising a specific set of non-grouping variables using select_helpers
# see ?select_helpers for more options
df2 <- df1 %>% group_by(year, month) %>% summarise_at(vars(starts_with('x')), sum)
df2 <- df1 %>% group_by(year, month) %>% summarise_at(vars(matches('.*[0-9]')), sum)
# summarising a specific set of non-grouping variables based on condition (class)
df2 <- df1 %>% group_by(year, month) %>% summarise_if(is.numeric, sum)
পরবর্তী দুটি বিকল্পের ফলাফল:
year month x1 x2
<dbl> <dbl> <dbl> <dbl>
1 2000 1 -73.58134 -92.78595
2 2000 2 -57.81334 -152.36983
3 2000 3 122.68758 153.55243
4 2000 4 450.24980 285.56374
5 2000 5 678.37867 384.42888
6 2000 6 792.68696 530.28694
7 2000 7 908.58795 452.31222
8 2000 8 710.69928 719.35225
9 2000 9 725.06079 914.93687
10 2000 10 770.60304 863.39337
# ... with 14 more rows
নোট: summarise_each
পক্ষে অবচিত summarise_all
, summarise_at
এবং summarise_if
।
উপরে আমার মন্তব্যে উল্লিখিত হিসাবে , আপনি প্যাকেজ recast
থেকে ফাংশনটি ব্যবহার করতে পারেন reshape2
:
library(reshape2)
recast(df1, year + month ~ variable, sum, id.var = c("date", "year", "month"))
যা আপনাকে একই ফলাফল দেবে।
recast
ফাংশন (এছাড়াও থেকেreshape2
) সংহতmelt
এবংdcast
: এই মত কাজের জন্য এক বারেই ফাংশনrecast(df1, year + month ~ variable, sum, id.var = c("date", "year", "month"))