R中多列的平均值

时间:2017-01-31 16:29:35

标签: r multiple-columns base

我正在尝试使用R中的列列表的平均值并遇到问题。我们说我有:

A B  C  D
1 2  3  4
5 6  7  8
9 10 11 12

我要做的是取c(A,C)列的平均值并将其保存为值(E)以及列c(B,D)的平均值并保存为不同的价值说F.这可能吗?

E   F
2   3
6   7
10  11

2 个答案:

答案 0 :(得分:3)

查看dplyr:

library(dplyr)
df <- df %>% mutate(E=(A+C)/2, F=(B+D)/2)
df

  A  B  C  D  E  F
1 1  2  3  4  2  3
2 5  6  7  8  6  7
3 9 10 11 12 10 11

答案 1 :(得分:2)

我们可以使用第1列和第1列对数据集进行子集化。 2,另一个3&amp; 4,将它们加在一起,除以2,然后用setNames

更改列名
setNames((df1[1:2] + df1[3:4])/2, c("E", "F"))
#   E  F
#1  2  3
#2  6  7
#3 10 11

或另一个选项是rowMeans,使用循环逻辑向量将其保留在list中,循环遍历list(使用sapply)并获取{{1} }}

rowMeans

或另一个选项是i1 <- c(TRUE, FALSE) sapply(list(df1[i1], df1[!i1]), rowMeans) 数据集,将其转换为unlist并使用array获取apply

mean