R 按组计算差异

R 按组计算差异,r,difference,R,Difference,我想分组计算距离。数据框中有三个类 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2

我想分组计算距离。数据框中有三个类

Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  versicolor
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa 
6          5.4         3.9          1.7         0.4  virginica 
我还计算了每个类的行和

rsums = aggregate(iris$rsum, by=list(Class=iris$Species), FUN=sum)
结果是这样的

      Class Centroid
1     setosa   1521.3
2 versicolor   2143.8
3  virginica   2571.0
所以我需要将每个组的总和减去同一组的每一行值,得到绝对差,例如下面给出的

            Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
    1          5.1-1521.3  3.5          1.4         0.2  setosa
    2          4.9         3.0          1.4         0.2  setosa
    3          4.7-2143.8  3.2          1.3         0.2  versicolor
    4          4.6         3.1          1.5         0.2  setosa
    5          5.0         3.6          1.4         0.2  setosa 
    6          5.4-2571.0  3.9          1.7         0.4  virginica 

我觉得你的问题有点不清楚。但是

iris$rsum <- rowSums(iris[,-5])
rsums <- aggregate(iris$rsum, by=list(Class=iris$Species), FUN=sum)
iris[,-(5:6)] <- iris[,-(5:6)] - rsums$x[iris$Species]
head(iris)
#  Sepal.Length Sepal.Width Petal.Length Petal.Width Species rsum
#1      -1516.2     -1517.8      -1519.9     -1521.1  setosa 30.6
#2      -1516.4     -1518.3      -1519.9     -1521.1  setosa 28.5
#3      -1516.6     -1518.1      -1520.0     -1521.1  setosa 28.2
#4      -1516.7     -1518.2      -1519.8     -1521.1  setosa 28.2
#5      -1516.3     -1517.7      -1519.9     -1521.1  setosa 30.6
#6      -1515.9     -1517.4      -1519.6     -1520.9  setosa 34.2

iris$rsum您是如何计算
iris
数据集中的
rsum
列的?
iris$rsum=rowSums(iris[,-5])
因此,您想从一行(每个
rsum
)的行和中减去组的行和(
rsums
)?我想不清楚您的要求是什么。