Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中是否有一种简单的方法可以使用分组数据中的子设置变量执行操作?_R_Subset - Fatal编程技术网

在R中是否有一种简单的方法可以使用分组数据中的子设置变量执行操作?

在R中是否有一种简单的方法可以使用分组数据中的子设置变量执行操作?,r,subset,R,Subset,我有一个数据库,里面有世界上每个国家从1970年到2019年每年大约200个变量的数据 作为一个简化的示例,数据框的外观如下所示: Data <- data.frame( Country = c(rep("Aruba", 5),rep("Afghanistan",5), rep("Angola",5)), Year = c(rep(c(2006:2010),3)), var1 = c(11.4, 11.

我有一个数据库,里面有世界上每个国家从1970年到2019年每年大约200个变量的数据 作为一个简化的示例,数据框的外观如下所示:

Data <- data.frame(
    Country = c(rep("Aruba", 5),rep("Afghanistan",5), rep("Angola",5)),
    Year = c(rep(c(2006:2010),3)),
    var1 = c(11.4,   11.1,   10.4,   10.5,   9.98,   10.2,   9.54,   10.6,   11.1,   11.4,   10.7,   9.93,   11.0,   8.98,   10.9),
    var2 = c(64.6,   64.7,   64.8,   65.1,   65.5,   66.1,   66.5,   67.1,   67.6,   68.1,   68.5,   68.8,   69.1,   69.5,   69.8)
    )
       Country diff_var1 diff_var2
1        Aruba     -1.12       0.8
2  Afghanistan       0.8       1.6
3       Angola       0.97        1


是否有任何简单的方法可以将数据按国家细分,然后在R上使用按年份过滤的数据进行操作?如果我正确理解你的问题,我认为dplyr的“组员”是行不通的:

library(dplyr)

# Fictious data
dat <- 
  expand.grid(
  year = 1970:2019,
  country = c('Afghanistan', 'Albania', 'Algeria', 'Andorra', 'Angola')
) %>% 
  mutate(
    var1 = rnorm(250, 0, 1),
    var2 = rnorm(250, 0, 1),
    var3 = rnorm(250, 0, 1)
  ) 

dat %>% 
  filter(year == 1970 | year == 2019) %>% 
  group_by(country) %>% 
  summarise_at(vars(var1:var3), diff)
库(dplyr)
#虚假数据
dat%
变异(
var1=rnorm(250,0,1),
var2=rnorm(250,0,1),
var3=rnorm(250,0,1)
) 
dat%>%
过滤器(年份==1970年|年份==2019年)%>%
按(国家)划分的组别%>%
总结(变量(变量1:变量3),差异)
结果:

# A tibble: 5 x 4
  country       var1   var2   var3
  <fct>        <dbl>  <dbl>  <dbl>
1 Afghanistan  0.246  0.848  1.29 
2 Albania     -2.53   3.75  -0.765
3 Algeria      1.96  -1.59   1.51 
4 Andorra      2.14  -0.496 -1.48 
5 Angola      -0.673 -0.727 -1.45 
#一个tible:5 x 4
国家变量1变量2变量3
1阿富汗0.246 0.848 1.29
2阿尔巴尼亚-2.53 3.75-0.765
3阿尔及利亚1.96-1.59 1.51
4安道尔2.14-0.496-1.48
5安哥拉-0.673-0.727-1.45

请展示您的数据框示例,并使用dput()将其粘贴到问题中,而不是试图描述它。谢谢。请看一下。谢谢,有用吗?对不起,这是一个新的问题,我不确定如何最好地解释是的!就是这样,非常有帮助,科姆,非常感谢你!