求和r中数据帧的特定属性

时间:2016-04-18 03:46:18

标签: r loops dataframe attributes

我创建了一个数据框,它是22个8个变量的对象。我在这一点上关注的两个与该问题相关的向量是vect1和vect2。有4个唯一值包含vect1,所有四个元素重复多次。我似乎无法弄清楚的是如何循环数据框并找到vect1的所有值的平均值,中值,模式或任何其他统计计算,相对于其vect2值。或者就此而言,将vect2中具有特定vect1值的所有值相加。

2 个答案:

答案 0 :(得分:0)

我们可以使用dplyr

library(dplyr)
df1 %>%
    group_by(vect1) %>%
    summarise_each(funs(sum, mean, median, Mode), vect2)

其中Mode

Mode <- function(x) {
 ux <- unique(x)
 ux[which.max(tabulate(match(x, ux)))]
}

答案 1 :(得分:0)

也许这会有所帮助......

> set.seed(22)
> df2 <- data.frame(replicate(8,sample(0:50,22000,rep=TRUE)))
> Mode <- function(x) {
+ ux <- unique(x)
+ ux[which.max(tabulate(match(x, ux)))]
+ }
> library(dplyr)
> df2 %>%
+ group_by(X1) %>%
+ summarise_each(funs(sum, mean, median, Mode), X2)
Source: local data frame [51 x 5]

      X1   sum     mean median  Mode
   (int) (int)    (dbl)  (dbl) (int)
1      0 10757 25.55107   25.0    38
2      1 11198 24.18575   24.0     2
3      2 10682 24.66975   25.0    46
4      3 11168 26.15457   26.0    17
5      4 10430 25.68966   26.5    26
6      5 10840 24.63636   25.0    33
7      6 11134 24.57837   25.0     5
8      7 10946 25.22120   26.0    31
9      8 11761 25.79167   27.0    28
10     9 11126 24.94619   26.0    34
..   ...   ...      ...    ...   ...

如果你能提供一些有用的数据样本,但上述内容应该有助于澄清Akrun提供的答案。通常,看到一行数据或仅仅是您所引用的Dataframe的描述会很棒。例如:

> str(df2)
'data.frame':   22000 obs. of  8 variables:
 $ X1: int  15 24 50 26 43 36 31 37 21 19 ...
 $ X2: int  33 45 26 6 3 6 14 47 29 21 ...
 $ X3: int  48 23 12 10 17 33 28 20 18 39 ...
 $ X4: int  29 10 10 38 11 5 35 9 31 37 ...
 $ X5: int  33 25 43 16 35 12 24 16 2 50 ...
 $ X6: int  3 18 12 8 36 30 20 1 4 0 ...
 $ X7: int  24 23 47 25 5 25 41 38 45 19 ...
 $ X8: int  28 25 15 33 29 29 45 38 8 14 ...

我希望以上有所帮助。

保重 吨。