R语言 数据框中基于列值的行数之和
在这篇文章中,我们将讨论如何在R编程语言中根据数据框中的列值求出行的值。假设你有一个这样的数据框。
ID | 水果 | 商店_1 | 商店_2 |
---|---|---|---|
1. | 苹果 | 1 | 13 |
2. | 芒果 | 9 | 5 |
3. | 草莓 | 2 | 14 |
4. | 苹果 | 10 | 6 |
5. | 苹果公司 | 3 | 15 |
6. | 草莓 | 11 | 7 |
7. | 芒果 | 4 | 16 |
8. | 草莓 | 12 | 8 |
这个数据集由水果名称和商店_1、商店_2作为列名组成。这里shop_1和shop_2显示了商店里的水果数量。现在你想找到shope_1中所有具有相同水果值的行的总和。所以我们的数据集看起来像这样。
ID | 水果 | shop_1 | 商店_2 |
---|---|---|---|
1. | 苹果 | 14 | 34 |
2. | 芒果 | 13 | 21 |
3. | 草莓 | 25 | 29 |
方法1:使用聚合函数
聚合函数创建原始数据的一个子集,并计算每个子集的统计函数,然后返回结果。
语法
aggregate(.~fruit,data=df,FUN=sum)
例子
# Sum of rows based on column values
# Creating dataset
# creating fuits column
x <- c("Apple","Mango","Strawberry",
"Apple","Apple","Strawberry",
"Mango","Strawberry")
# creating shop_1 column
y <- c(1,9,2,10,3,11,4,12)
# creating shop_2 column
z <- c(13,5,14,6,15,7,16,8)
# creating dataframe
df <- data.frame(fruits=x,shop_1=y,shop_2=z)
# applying aggregate function
aggregate(.~fruits,data=df,FUN=sum)
输出
使用聚合函数
方法2:使用ddply和numcolwise函数
ddply 简单地分割给定的数据框,并对其进行pe r 形式的任何操作(可能应用一个函数),然后返回数据框。
colwise 是来自 著名的 plyr 包的一个函数。colwise function是用来计算数据 框架中每一列的函数,它是按列计算的。
例子
# Sum of rows based on column values
# loading library
library(plyr)
# Creating dataset
# creating fuits column
x <- c("toy1","toy2","toy3",
"toy1","toy1","toy3",
"toy2","toy3")
# creating stock_1 column
y <- c(1,2,3,4,5,6,4,8)
# creating stock_2 column
z <- c(9,1,10,5,2,6,4,8)
# creating dataframe
df <- data.frame(toys=x,stock_1=y,stock_2=z)
# using sum function colwise
ddply(df,"toys",numcolwise(sum))
输出
使用ddply