从R中的数据框总结观察结果(多个条件)

从R中的数据框总结观察结果(多个条件),r,dataframe,dplyr,R,Dataframe,Dplyr,我目前面临以下问题,非常感谢您的帮助。我的数据框看起来像这样 country_birth year migrants live_in gender Albania 2000 1 Australia male Germany 2000 2 Australia female Albania 2008 3

我目前面临以下问题,非常感谢您的帮助。我的数据框看起来像这样

country_birth   year    migrants   live_in                gender
Albania         2000      1        Australia           male
Germany         2000      2        Australia           female
Albania         2008      3        Australia           male
Albania         2000      6        Australia           female
Germany         2004      2        Australia           female
UK               2004      2         Germany           female
US               2004      5          UK                male


country_birth   year    total_migrants   live_in                
Albania         2000      7              Australia           
...             ...      ...                ...
现在,我想获得同一出生国同一居住国匹配年份的移民总数(男女均)。一个新的数据帧应该是这样的

country_birth   year    migrants   live_in                gender
Albania         2000      1        Australia           male
Germany         2000      2        Australia           female
Albania         2008      3        Australia           male
Albania         2000      6        Australia           female
Germany         2004      2        Australia           female
UK               2004      2         Germany           female
US               2004      5          UK                male


country_birth   year    total_migrants   live_in                
Albania         2000      7              Australia           
...             ...      ...                ...

非常感谢

您可以尝试
聚合
+
子集
如下

> aggregate(migrants ~ ., subset(df, select = -gender), sum)
  country_birth year   live_in migrants
1       Albania 2000 Australia        7
2       Germany 2000 Australia        2
3       Germany 2004 Australia        2
4       Albania 2008 Australia        3
5            UK 2004   Germany        2
6            US 2004        UK        5
在哪里

  • subset
    省略列
    gender
  • aggregate
    帮助您聚合
    移民
    ,按所有其他列分组

您可以尝试
聚合
+
子集
如下

> aggregate(migrants ~ ., subset(df, select = -gender), sum)
  country_birth year   live_in migrants
1       Albania 2000 Australia        7
2       Germany 2000 Australia        2
3       Germany 2004 Australia        2
4       Albania 2008 Australia        3
5            UK 2004   Germany        2
6            US 2004        UK        5
在哪里

  • subset
    省略列
    gender
  • aggregate
    帮助您聚合
    移民
    ,按所有其他列分组
库(tidyverse)
数据%>%
计数(出生国、年份、居住地、wt=移民,name=“总移民”)
##tibble:6 x 4
#国家出生年份居住人口总数
#                           
#1阿尔巴尼亚2000澳大利亚7
#2阿尔巴尼亚2008澳大利亚3
#3德国2000澳大利亚2
#4德国2004澳大利亚2
#5英国2004德国2
#6美国2004英国5
库(tidyverse)
数据%>%
计数(出生国、年份、居住地、wt=移民,name=“总移民”)
##tibble:6 x 4
#国家出生年份居住人口总数
#                           
#1阿尔巴尼亚2000澳大利亚7
#2阿尔巴尼亚2008澳大利亚3
#3德国2000澳大利亚2
#4德国2004澳大利亚2
#5英国2004德国2
#6美国2004英国5

以下是{dplyr}方法:

data %>%
  group_by(country_birth, year, live_in) %>%
  summarise(total_migrants = sum(total_migrants))

通过阅读或,您可以了解有关分组摘要的更多信息。

以下是{dplyr}方法:

data %>%
  group_by(country_birth, year, live_in) %>%
  summarise(total_migrants = sum(total_migrants))
您可以通过阅读或了解有关分组摘要的更多信息