R数据表一个字段无聚合

  • 本文关键字:字段 一个 数据表 r
  • 更新时间 :
  • 英文 :


我已经使用了data.table功能来找出" y"的最小值" x",如下所示。

> x <- c("A", "B", "A", "C", "B", "A")
> y <- c(0, 1, 1, 1, 2, 2)
> z <- c(1, 2, 1, 4, 5, 3)
> df <- data.table(x, y, z)
> temp <- df[, .(M=min(y)), by="x"]
> temp
   x M
1: A 0
2: B 1
3: C 1
> df
   x y z
1: A 0 1
2: B 1 2
3: A 1 1
4: C 1 4
5: B 2 5
6: A 2 3

但是,现在发现最小值后,我希望能够为每个" x"s。

的" z"的相应值拔出

简而言之,我希望温度像:

> temp
   x M z
1: A 0 1
2: B 1 2
3: C 1 4

我该如何在r?

中执行此操作

我们可以使用.I单步执行此操作,以提取逻辑向量的行索引,并根据该

来对数据集的行进行子集。
df[df[, .I[y==min(y)], by = x]$V1]
#    x y z
#1: A 0 1
#2: B 1 2 
#3: C 1 4

或其他选项是

df[order(x,y)][!duplicated(x)]

如果我们想基于"临时"获取输出,请使用join

df[temp,  on =.(x, y=M)]
#   x y z
#1: A 0 1
#2: B 1 2
#3: C 1 4

相关内容

  • 没有找到相关文章

最新更新