数据帧R中不同列的总和/平均值

数据帧R中不同列的总和/平均值,r,R,我在一个数据框中有4列 a <- data.frame(a=c(1,2,3,4), b=c(4,5,6,7), c=c(7,6,5,4), d=c(8,4,3,2)) 要再现您的输出(即总和,而不是平均值): 它产生: first second 1 5 15 2 7 10 3 9 8 4 11 6 要使用平均值制作data.frame: ddply(a, .(), summarise, first=(a+b)/2,

我在一个数据框中有4列

a <- data.frame(a=c(1,2,3,4), b=c(4,5,6,7), c=c(7,6,5,4), d=c(8,4,3,2))
要再现您的输出(即总和,而不是平均值):

它产生:

  first second
1     5     15
2     7     10
3     9      8
4    11      6
要使用平均值制作
data.frame

ddply(a, .(), summarise, first=(a+b)/2, second=(c+d)/2)[,-1]
输出为:

  first second
1   2.5    7.5
2   3.5    5.0
3   4.5    4.0
4   5.5    3.0
如果您不知道列的名称,可以按如下方式修改代码:

ddply(a, .(), summarise, first=a[,1]+a[,2], second=a[,3]+a[,4])[,-1]

在这里,您可以按顺序访问列。或者,你可以简单地运行
names(a)这里有可能重复看看它可能会做你需要的事情谢谢,这很有效。但是我没有任何列名称。我在上面举了一个例子。我只知道加上前两列和后两列。我该如何传递这些信息呢?只需运行
names(a)@redmionds,summary(a,first=a[,1]+a[,2],second=a[,3]+a[,4]),就会抛出错误->“维度数不正确的错误”@user1631306,我想这是因为
数据。frame
a
的列名为
a
  first second
1   2.5    7.5
2   3.5    5.0
3   4.5    4.0
4   5.5    3.0
ddply(a, .(), summarise, first=a[,1]+a[,2], second=a[,3]+a[,4])[,-1]
summarise(a, first=a+b, second=c+d)                 # if you know columns' names
summarise(a, first=a[,1]+a[,2], second=a[,3]+a[,4]) # if you don't know columns' names