r - 在 R 中创建特定于组和时间的方法
问题描述
我有一个长格式的面板数据集。我正在尝试使用特定于时期和组的方式创建一个对象,以创建特定的情节。
数据集如下所示:
id <- c(1, 1, 2, 2, 3, 3)
yes.perc <- c(66.7, 60.1, 50, 38.2, 55.3, 49)
ref.code <- c(6040,6041,6040,6041,6040,6041)
treat <- c(1,0,1,0,1,0)
year <- c(2010, 2012, 2010, 2012, 2010, 2012)
df <- as.data.frame(c(id, yes.perc, ref.code, treat, year)
我尝试过的一件事是:
means.t <- c(mean(df$yes.perc [df$year==2010&df$treat==1]),
mean(df$yes.perc [df$year==2012&df$treat==1]))
means.c <- c(mean(df$yes.perc [df$year==2010&df$treat==0]),
mean(df$yes.perc [df$year==2012&df$treat==0]))
我也试过这个:
df %>% group_by(year, treat)%>% summarise(year.mean=mean(yes.perc))
我得到的只是 NA,我不明白为什么
非常感谢您的帮助!
解决方案
library(dplyr)
id <- c(1, 1, 2, 2, 3, 3)
yes.perc <- c(66.7, 60.1, 50, 38.2, 55.3, 49)
ref.code <- c(6040,6041,6040,6041,6040,6041)
treat <- c(1,0,1,0,1,0)
year <- c(2010, 2012, 2010, 2012, 2010, 2012)
df <- data.frame(id, yes.perc, ref.code, treat, year)
df %>% group_by(year, treat)%>% summarise(year.mean=mean(yes.perc))
#> # A tibble: 2 x 3
#> # Groups: year [2]
#> year treat year.mean
#> <dbl> <dbl> <dbl>
#> 1 2010 1 57.3
#> 2 2012 0 49.1
由reprex 包于 2020-04-20 创建(v0.3.0)
这能解决你的问题吗?
推荐阅读
- python - 为 ndb.tasklets 输入注释
- ajax - wp_send_json* functions do a weird float values conversion
- java - 多个 JComboBox 侦听器
- python - Getting the name of a class which has a meta class
- sql - How to retrieve all user tables, corresponding columns and data types in SQL Server?
- html - 从 HTML 片段中删除任何视频
- javascript - My modal is not appearing, having difficulty targeting a button within a table using selectors
- python - 根据条件退出 Jupyter Notebook .ipynb 单元
- fluentd - 在 GKE 中实现默认的堆栈驱动程序行为
- rxjs - Creating an Observable that gets its value from a subscriptions calculation