如何为我的数据的每一行取平均值?

时间:2018-11-07 01:49:27

标签: r for-loop dataframe statistics

所以我的数据如下:

 data1  data2  data3 data4
 1      2      3     4
 2      3      4     5
 3      4      5     6

我想取每行数据的前三列的平均值,并得到这样的乘积:

 mean_123  data4
 2         4
 3         5
 4         6

我知道我可能需要一个for循环。 我的数据来自其中包含4列数据的数据框。

我们称之为“ data_frame_1”

2 个答案:

答案 0 :(得分:0)

这是一个dplyr解决方案,它使用rowwise()来计算行均值。我在这里使用transmute()是因为您似乎想删除用于生成均值的列。如果要保留它们,请改用mutate()。我希望这会有所帮助-祝你好运!

代码:

library("dplyr")

mean_df <- rowwise(df) %>%
  transmute(mean_123 = mean(c(data1,data2,data3)),
            data4 = data4)

输出:

# A tibble: 3 x 2
  mean_123 data4
     <dbl> <dbl>
1        2     4
2        3     5
3        4     6

答案 1 :(得分:0)

使用base R,只需使用data.frame(mean_123 = rowMeans(data_frame_1[1:3]), data4 = data_frame_1$data4)

#  mean_123 data4
#1        2     4
#2        3     5
#3        4     6