【发布时间】:2020-06-24 11:44:56
【问题描述】:
我有一个更长版本的数据框:
council_name <- c("Southwark", "Southwark", "Southwark", "Lambeth", "Lambeth", "Lambeth", "Yorkshire", "Yorkshire", "Yorkshire")
quarter <- c("2006 Q1", "2006 Q2", "2006 Q3", "2006 Q1", "2006 Q2", "2006 Q3","2006 Q1", "2006 Q2", "2006 Q3")
treat <- c(1, 0, 1, 0, 0, 1, 0, 0, 0)
df.desired <- as.data.frame(c(council_name, as.yearqtr(quarter), treat, df, first.treatment))
当“治疗”第一次为“理事会名称”的每个值时,我想要一个值为“季度”的列。如果对于特定的委员会名称,“治疗”从不为 1,则为“0”。
这会是这样的:
library(zoo)
council_name <- c("Southwark", "Southwark", "Southwark", "Lambeth", "Lambeth", "Lambeth", "Yorkshire", "Yorkshire", "Yorkshire")
quarter <- c("2006 Q1", "2006 Q2", "2006 Q3", "2006 Q1", "2006 Q2", "2006 Q3","2006 Q1", "2006 Q2", "2006 Q3")
treat <- c(1, 0, 1, 0, 0, 1, 0, 0, 0)
first.treatment <- c("2006 Q1", "2006 Q3", 0)
df.desired <- as.data.frame <- c(council_name, as.yearqtr(quarter), treat, df, first.treatment)
我用 group_by 和排序尝试了不同的东西,但我从来没有完全得到我要找的东西。
我尝试过的一个例子是:
merged2%>%
group_by(council_name, year_qtr)%>%
arrange(year_qtr)%>%
mutate(first.treatment = by(year_qtr, head, 1))
但是得到了:
Error: Problem with `mutate()` input `first.treatment`. x unique() applies only to vectors ℹ Input `first.treatment` is `by(year_qtr, head, 1)`. ℹ The error occured in group 1: council_name = "Adur", year_qtr = 2006 Q2.
非常感谢!
【问题讨论】:
-
"我用 group_by 尝试了不同的东西" - 请分享你的代码,即使它不起作用。
-
你是对的。抱歉,编辑了它并包含了一个示例。
-
你的例子正确吗?因为我运行它时得到一个列表,而不是数据框
-
抱歉,现在更正了
标签: r dataframe dplyr tidyverse zoo