在 R 中按行分组和求和
Group and sum by row in R
这是我在 Stack 上的第一个问题。我正在寻找一种有效的方法来对一行内的值进行分组和求和。
我的行数据是这样分布的:10000 10 20000 20 40000 12 60000 23 10000 12 40000 17。
我需要一个结果:10000 22 20000 20 40000 29 60000 23。大数字是特征,小数字是出现。
那是我的真实数据 - 例如 10004 我需要 23。
我试过循环、聚合,但我做不到。
您可以使用 aggregate
## Your data
Row = c(11131132, 10004, 5, 265098, 3, 190029, 2,
265092, 2, 265077, 17, 10004, 18,
265097,17, 265098,15,190029,2, 265099,17)
ID = Row[seq(2,length(Row), 2)]
value = Row[seq(3,length(Row), 2)]
GroupSum = aggregate(value, list(ID), sum)
GroupSum
Group.1 x
1 10004 23
2 190029 4
3 265077 17
4 265092 2
5 265097 17
6 265098 18
7 265099 17
这是我在 Stack 上的第一个问题。我正在寻找一种有效的方法来对一行内的值进行分组和求和。 我的行数据是这样分布的:10000 10 20000 20 40000 12 60000 23 10000 12 40000 17。 我需要一个结果:10000 22 20000 20 40000 29 60000 23。大数字是特征,小数字是出现。
那是我的真实数据 - 例如 10004 我需要 23。 我试过循环、聚合,但我做不到。
您可以使用 aggregate
## Your data
Row = c(11131132, 10004, 5, 265098, 3, 190029, 2,
265092, 2, 265077, 17, 10004, 18,
265097,17, 265098,15,190029,2, 265099,17)
ID = Row[seq(2,length(Row), 2)]
value = Row[seq(3,length(Row), 2)]
GroupSum = aggregate(value, list(ID), sum)
GroupSum
Group.1 x
1 10004 23
2 190029 4
3 265077 17
4 265092 2
5 265097 17
6 265098 18
7 265099 17