Difference between revisions of "R: dplyr package"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) |
Rafahsolis (talk | contribs) |
||
| Line 59: | Line 59: | ||
arrange( | arrange( | ||
filter( | filter( | ||
| − | summarize( | + | summarize(group_by(cran, package), |
| − | + | count = n(), | |
| − | |||
| − | |||
| − | count = n(), | ||
unique = n_distinct(ip_id), | unique = n_distinct(ip_id), | ||
countries = n_distinct(country), | countries = n_distinct(country), | ||
| Line 69: | Line 66: | ||
), | ), | ||
countries > 60 | countries > 60 | ||
| − | ), | + | ), desc(countries), avg_bytes |
| − | |||
| − | |||
) | ) | ||
Latest revision as of 13:09, 23 April 2015
library(dplyr)
packageVersion("dplyr")
mydf <- read.csv(path2csv, stringsAsFactors=FALSE)
cran <- tbl_df(mydf)
# fundamental data manipulation tasks: select(), filter(), arrange(), mutate(), and summarize()
# select()
select(cran, ip_id, package, country)
select(cran, r_arch:country)
select(cran, country:r_arch)
# Omit columns
select(cran, -time)
select(cran, -(X:size))
# filter()
filter(cran, package == "swirl")
filter(cran, r_version == "3.1.1", country == "US")
filter(cran, country == "US" | country == "IN")
filter(cran, size > 100500, r_os == "linux-gnu")
filter(cran, !is.na(r_version))
# arrange()
cran2 <- select(cran, size:ip_id)
arrange(cran2, ip_id)
arrange(cran2, desc(ip_id))
arrange(cran2, package, ip_id)
arrange(cran2, country, desc(r_version), ip_id)
# mutate()
mutate(cran3, size_mb = size / 2^20)
mutate(cran3, size_mb = size / 2^20, size_gb = size_mb / 2^10)
# summarize()
summarize(cran, avg_bytes = mean(size))
pack_sum <- summarize(by_package,
count = n(),
unique = n_distinct(ip_id),
countries = n_distinct(country),
avg_bytes = mean(size))
quantile(pack_sum$count, probs = 0.99)
top_counts<-filter(pack_sum, count > 679)
View(top_counts)
top_counts_sorted<-arrange(top_counts, desc(count))
View(top_counts_sorted)
# group_by()
by_package <- group_by(cran, package)
summarize(by_package, mean(size))
Rank packages.
result2 <-
arrange(
filter(
summarize(group_by(cran, package),
count = n(),
unique = n_distinct(ip_id),
countries = n_distinct(country),
avg_bytes = mean(size)
),
countries > 60
), desc(countries), avg_bytes
)
print(result2)
With pipelines
result3 <-
cran %>%
group_by(package) %>%
summarize(count = n(),
unique = n_distinct(ip_id),
countries = n_distinct(country),
avg_bytes = mean(size)
) %>%
filter(countries > 60) %>%
arrange(desc(countries), avg_bytes)
# Print result to console
print(result3)