我有这个数据集:
B <- c(60.65, 25.25)
D <- c(10, 10)
E <- c(30.35, 65.75)
Total <- c(100,100)
我想围绕B+D+E = 100
的圆柱
非常感谢您的帮助。
问候!
我假设你问的是如何缩放来自B
,D
,E
的条目,以便它们总结Total
。在我看来,“圆形”这个词在这里并没有多大意义。
如果是这种情况,您可以执行以下操作
df <- data.frame(B, D, E) * Total / rowSums(data.frame(B, D, E))
df
# B D E
#1 60.0495 9.90099 30.04950
#2 25.0000 9.90099 65.09901
然后data.frame
df
包含缩放的列向量B
,D
,E
。我们可以确认组件总和为Total
rowSums(df)
#[1] 100 100
行值的总和接近100但是简单的舍入并不总是给出100,例如,第一排。因此,在舍入之前,让我们执行缩放,将行值的总和从“关闭”更改为精确等于100.但是,可能会出现这种情况,即使在缩放后舍入也不会使总和等于100,所以让我们通过更改其中一列的值来更正此问题:
# additional value 100/3
B <- c(60.65, 25.25, 100/3)
D <- c(10, 10, 100/3)
E <- c(30.35, 65.75, 100/3)
Total <- c(100, 100, 100)
df <- round(data.frame(B, D, E)*100/rowSums(data.frame(B, D, E)))
df
# B D E
#1 60 10 30
#2 25 10 65
#3 33 33 33
rowSums(df)
#[1] 100 100 99
df[,3] <- 100 - rowSums(df[,1:2])
df
# B D E
#1 60 10 30
#2 25 10 65
#3 33 33 34
rowSums(df)
#[1] 100 100 100