R中每个类别的合并级别
我有以下数据帧:R中每个类别的合并级别,r,data-manipulation,R,Data Manipulation,我有以下数据帧: year<- c(rep(c("1995"),4)) cou <- c(rep(c("AT"),4)) var_far1<- c("A","B", "C", "E") x1 <- c(NA,2,NA,3) var_far2<- c("A","B", "C-E", "C-E") data1<-data.frame(cou,year,var_far1,x1,var_far2) year<- c(rep(c("1996"),
year<- c(rep(c("1995"),4))
cou <- c(rep(c("AT"),4))
var_far1<- c("A","B", "C", "E")
x1 <- c(NA,2,NA,3)
var_far2<- c("A","B", "C-E", "C-E")
data1<-data.frame(cou,year,var_far1,x1,var_far2)
year<- c(rep(c("1996"),4))
cou <- c(rep(c("AT"),4))
var_far1<- c("A","B", "C", "E")
x1 <- c(NA,2,5,3)
var_far2<- c("A","B", "C-E", "C-E")
data2<-data.frame(cou,year,var_far1,x1,var_far2)
data<-rbind(data1,data2)
我想根据x1
每年
每cou
我在R怎么做
更新:预期结果如下所示:
cou year var_far1 x1 var_far2 x1_new
1 AT 1995 A NA A NA
2 AT 1995 B 2 B 2.0
3 AT 1995 C NA C-E 3.0
4 AT 1995 E 3 C-E 3.0
5 AT 1996 A 1 A 1.0
6 AT 1996 B 2 B 2.0
7 AT 1996 C 5 C-E 4
8 AT 1996 E 3 C-E 4
我相信您的预期产出有误,如果有,我认为这应该满足您的要求:
library(dplyr)
data %>%
group_by(cou,year,var_far2) %>%
mutate(x1_new=mean(x1,na.rm=T)) %>%
ungroup
# # A tibble: 8 x 6
# cou year var_far1 x1 var_far2 x1_new
# <fctr> <fctr> <fctr> <dbl> <fctr> <dbl>
# 1 AT 1995 A 1 A 1
# 2 AT 1995 B 2 B 2
# 3 AT 1995 C NA C-E 3
# 4 AT 1995 E 3 C-E 3
# 5 AT 1996 A 1 A 1
# 6 AT 1996 B 2 B 2
# 7 AT 1996 C 5 C-E 4
# 8 AT 1996 E 3 C-E 4
库(dplyr)
数据%>%
分组依据(cou、年份、var\u far2)%>%
突变(x1_新=平均值(x1,na.rm=T))%>%
解组
##A tibble:8 x 6
#年份风险1 x1风险2 x1新
#
#1在1995年A 1 A 1
#2在1995年B 2 B 2
#3在1995年C-NA C-E 3
#4在1995年E 3 C-E 3
#1996年第5届A 1 A 1
#6在1996年B 2 B 2
#7 1996年C 5 C-E 4
#8 1996年E 3 C-E 4
不太清楚“平均值”是什么意思。您最初是如何从x1==5
和x1==3
获得第7行和第8行的4.5
的?出于某种原因,我没有得到预期的结果。我稍微修改了我的工作数据库,以包含一个NA变量。我将再次检查我的数据库中是否存在我没有注意到的其他问题。
library(dplyr)
data %>%
group_by(cou,year,var_far2) %>%
mutate(x1_new=mean(x1,na.rm=T)) %>%
ungroup
# # A tibble: 8 x 6
# cou year var_far1 x1 var_far2 x1_new
# <fctr> <fctr> <fctr> <dbl> <fctr> <dbl>
# 1 AT 1995 A 1 A 1
# 2 AT 1995 B 2 B 2
# 3 AT 1995 C NA C-E 3
# 4 AT 1995 E 3 C-E 3
# 5 AT 1996 A 1 A 1
# 6 AT 1996 B 2 B 2
# 7 AT 1996 C 5 C-E 4
# 8 AT 1996 E 3 C-E 4