不同数据框中相同列的中位数

时间:2016-05-02 06:47:49

标签: r

我有三个数据框(a,b,c)。

a
aa ab  ac
1  2   5
2  3   6
3  4   7
b
aa  ab  ac
2   5    8
4   6    9
c
aa  ab  ac
5   4    6
7   1    8

我需要计算不同数据帧的相同列的中值。我听说过abind,但是当我尝试将所有3个数据帧合并而没有任何中位数计算时。感谢您的任何建议。

3 个答案:

答案 0 :(得分:3)

我们可以rbind所有数据集,创建分组ID,并获取各个列的median

library(dplyr)
bind_rows(a, b, c, .id="group") %>% 
              group_by(group) %>% 
              summarise_each(funs(median))

如果我们不需要按'id'分组

bind_rows(a, b, c)  %>% 
             summarise_each(funs(median))

或使用data.table

library(data.table)
rbindlist(list(a,b,c), idcol=TRUE)[, 
         lapply(.SD, function(x) median(as.numeric(x))) , by = .id]

答案 1 :(得分:1)

如果您试图单独获取数据框列的中位数,则必须执行

  • for dataframe a:
  • median(a$aa)
  • median(a$ab)
  • median(a$ac) 依此类推其他数据帧

如果您想获得所有三个数据帧的中位数,请考虑以下因素:

big_df = cbind(a,b,c)
median(big_df$aa)
median(big_df$ab)
median(big_df$ac)

答案 2 :(得分:0)

对于你可以做的中位数

running tests ...                    < ---- (not actually running)
fetching file from server ...
flashing the file to the hardware ...

对于大桌子,请参阅其他答案中的approches。