【发布时间】:2023-03-18 13:38:01
【问题描述】:
我正在尝试比较特定区域内的不同公寓份额(就其大小而言)。数据如下所示:
df <- data.frame (rbind(c(0.33, 0.33, 0.33), c(0.6, 0.4, 0), c(0,0.4,0.6),c(0.25,0.35,0.6)))
names(d) <- c("30-50", "50-70", "70-90")
所有行的总和等于 1(或 100%),每列中的值表示该区域(区域 1 为第 1 行)具有特定大小的公寓的份额
我现在想添加一个附加列,该列给出每行中最大值的列名。因此,我正在使用此代码:
df$highest_value <- names(df)[apply(df, 1, which.max)]
这给出了以下列向量:
[1] "30-50" "30-50" "70-90" "70-90"
对于第 2:4 行,结果是正确的,因为它们包含一个最高值。但是,对于第 1 行,结果不正确,因为它们在该区域的公寓总数中所占的份额相同(全部为 33,333...%),但最高值列给出了第一列的名称。有没有办法确定最高值在行中是否唯一?如果是这样,我希望向量显示这些场景的“混合”。最高值列将如下所示:
[1] "mix" "30-50" "70-90" "70-90"
我希望提供的信息足够。
【问题讨论】:
标签: r