【发布时间】:2021-06-28 07:58:03
【问题描述】:
我想选择数据集中每个变量(列)的前 N 个值,其中 N 因列和行而异,并在另一个表中给出。下面是虹膜数据的示例:
data(iris)
head(iris)
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 setosa
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 setosa
## Create a fake external table
ext.tab <- data.table(species=c("setosa","versicolor", "virginica" ),N1=c(1:3),N2=c(3:5),N3=c(5:7),N4=c(7:9))
head(ext.tab)
species N1 N2 N3 N4
1: setosa 1 3 5 7
2: versicolor 2 4 6 8
3: virginica 3 5 7 9
现在对于 Iris setosa,我想获得第 1 列(虹膜数据中的“sepal.length”)的第一个最大值(ext.tab 中的 N1),然后是三个最大值第 2 列 (sepal.width) 的值 (ext.tab 中的 N2),然后是第 3 列 (petal.length) 的五个最大值 (N3),依此类推。然后移动到 Iris versicolor 并做同样的事情。
结果可以是每个物种的表格或列表,其中包含值本身或每个变量(列)的行索引。有什么快速的实现方法的想法吗?
【问题讨论】:
-
你的问题我不清楚。您想要的输出应该是什么样的?
-
嗨,温佩尔。我已经修改了我的答案以澄清所需的输出。
标签: r dplyr data.table