Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
library(dplyr) library(tidyr) sales <- data.frame( month = rep(c("Jan","Feb","Mar","Apr"), times = 2), region = rep(c("North","South"), each = 4), revenue = c(120,135,110,150, 90,95,105,115) ) # Window functions inside mutate after group_by sales |> group_by(region) |> mutate( rank_rev = row_number(desc(revenue)), pct_of_max = revenue / max(revenue), cumulative = cumsum(revenue), mom_change = revenue - lag(revenue, default = first(revenue)) ) |> ungroup() # rowwise() for row-level computation scores <- data.frame( student = c("Alice","Bob","Carol"), math = c(88, 72, 95), english = c(91, 85, 78), science = c(79, 90, 88) ) scores |> rowwise() |> mutate( avg_score = mean(c_across(math:science)), max_score = max(c_across(math:science)) ) |> ungroup() # pivot_longer — wide to long long_sales <- sales |> rename(rev = revenue) |> pivot_longer(cols = rev, names_to = "metric", values_to = "value") # More typical pivot_longer: multiple measure columns scores_long <- scores |> pivot_longer(cols = -student, names_to = "subject", values_to = "score") scores_long # pivot_wider — long back to wide scores_long |> pivot_wider(names_from = subject, values_from = score) # separate and unite data.frame(date_range = c("2024-01-01/2024-03-31", "2024-04-01/2024-06-30")) |> separate(date_range, into = c("start", "end"), sep = "/") scores |> unite("id", student, sep = "_") |> head(2)
Result
Open