分析最终结果

时间:2017-08-19 19:05:44

标签: r

以下是示例数据:

    long days = ChronoUnit.DAYS.between(d1, d2);

每个组以df <- data.frame(group=rep(1:5,rep(2,5)),value=c(0,-150,0,50,0,-120,0,30,0,-20),flag1=floor(runif(10)),flag2=rep(rbinom(5,1,.5),rep(2,5)),flag3=rep(rbinom(5,1,.5),rep(2,5))) 值开头,每组第二行是终值,可以是0

例如第1组:

>0 or 0<

我想找出哪些变量组合group value flag1 flag2 flag3 1 0 0 0 0 1 -150 0 0 0 的结果为负flag1-flag3,哪些为正。上面的这个例子表明,将所有value 0置于状态0(第1行)将导致负flag1-flag3 =结果(第2行)。我想获得每组和整体的关联。

1 个答案:

答案 0 :(得分:2)

以下面的例子为例。我按flag1-flag3的所有可能值进行分组,并计算每个组的正值或负值的概率分布。

library(dplyr)

# remove redundant rows:
df <- df %>% filter(value != 0) 

# get all combinations of flat1-flag3 by grouping them,
# and then calculate the distribution:
df %>% group_by(flag1, flag2, flag3) %>% summarise(pos = mean(value > 0),
                                                   neg = mean(value < 0))
Source: local data frame [4 x 5]
Groups: flag1, flag2 [?]

  flag1 flag2 flag3   pos   neg
  <dbl> <int> <int> <dbl> <dbl>
1     0     0     0   0.0   1.0
2     0     0     1   0.5   0.5
3     0     1     0   1.0   0.0
4     0     1     1   0.0   1.0

如果您更多地寻找回归系数,您可能想要做类似

的事情
 lm(value > 0 ~ flag1 + flag2 + flag3, data = df)
但是,我不确定这是你要求的。只需添加它以防万一...

只是指出它,你可以使用内置函数ftable获得上述内容,但我通常更喜欢dplyr,因为它返回一个易于使用的tibble。