循环规范化数据
Loops to normalise data
这是一个小数据集
RWC<-as.data.frame(matrix(1:9,ncol=3))
RWC
V1 V2 V3
1 4 7
2 5 8
3 6 9
我正在尝试通过分别对行求和并将原始数字除以总和来进行标准化。
这应该会导致这个(我不需要四舍五入,这只是为了方便)。
V1 V2 V3
0.08 0.33 0.58
0.13 0.33 0.53
0.16 0.33 0.50
到目前为止我已经写了
for(i in 3:nrow(RWC)){
normalise <- sum(row[3:ncol])
RWC <- ()
}
我一直在尝试除法并将值赋给特定的行和列,我该怎么做?
获取每行总和的快速方法是rowSums(RWC)
。
然后将 RWC 除以结果。
RWC <- RWC / rowSums(RWC)
我们可以使用 prop.table
和 margin
作为 1.
prop.table(as.matrix(RWC), 1)
# V1 V2 V3
#[1,] 0.08333 0.3333 0.5833
#[2,] 0.13333 0.3333 0.5333
#[3,] 0.16667 0.3333 0.5000
prop.table
是 sweep
的包装
sweep(RWC, 1, rowSums(RWC), `/`)
不使用 for
循环,您可以使用 apply
函数:
apply(RWC,1, function(x) round(x/sum(x),2))
[,1] [,2] [,3]
X1 0.08 0.13 0.17
X2 0.33 0.33 0.33
X3 0.58 0.53 0.50
这是一个小数据集
RWC<-as.data.frame(matrix(1:9,ncol=3))
RWC
V1 V2 V3
1 4 7
2 5 8
3 6 9
我正在尝试通过分别对行求和并将原始数字除以总和来进行标准化。 这应该会导致这个(我不需要四舍五入,这只是为了方便)。
V1 V2 V3
0.08 0.33 0.58
0.13 0.33 0.53
0.16 0.33 0.50
到目前为止我已经写了
for(i in 3:nrow(RWC)){
normalise <- sum(row[3:ncol])
RWC <- ()
}
我一直在尝试除法并将值赋给特定的行和列,我该怎么做?
获取每行总和的快速方法是rowSums(RWC)
。
然后将 RWC 除以结果。
RWC <- RWC / rowSums(RWC)
我们可以使用 prop.table
和 margin
作为 1.
prop.table(as.matrix(RWC), 1)
# V1 V2 V3
#[1,] 0.08333 0.3333 0.5833
#[2,] 0.13333 0.3333 0.5333
#[3,] 0.16667 0.3333 0.5000
prop.table
是 sweep
sweep(RWC, 1, rowSums(RWC), `/`)
不使用 for
循环,您可以使用 apply
函数:
apply(RWC,1, function(x) round(x/sum(x),2))
[,1] [,2] [,3]
X1 0.08 0.13 0.17
X2 0.33 0.33 0.33
X3 0.58 0.53 0.50