(这是我的第一个问题,所以请让我知道,如果我没有问它正确,并请您分享我如何能提高我的问题问的技能的一些反馈)如何使用which.min和tapply确定绝对行号?
我的数据集,名为DS,是一个具有三列和4000+观察值的矩阵。 DS中的三列分别是:
name v2 f1
- 名字是性格
- v2是数字
- F1是与54个水平
我想找到最小的位置因素对于因子x的v2。我试过如下
tapply(ds$v2, ds$f1 == x, which.min)
使用tapply我得到的答案是这样的:
FALSE TRUE
2821 19
我推测,19是我的数据集的绝对位置,如果我想找到的名称我需要做的全部观察是
ds[19, 1]
但是显然这是不正确的。我已经理解19对应于相对位置,即它是对因子x的第19次观察。
所以我的问题是:我如何才能找到因子X的最小值绝对位置?
请提供一个小的数据集摘要和所需的输出基于它,你的问题将成为一个好问题。 – nicola
我想'tapply'是这个相当混乱,像'tapply(1:nrow(光圈),虹膜$种类,功能(我)我[which.min(虹膜$ Sepal.Length))'。如果你愿意使用像dplyr或data.table这样的包,可以使用更直观的语法。或者,'by()'函数可能有所帮助:http://stackoverflow.com/a/24070835/ – Frank