gpt4 book ai didi

r - 按组获取唯一值的行

转载 作者:行者123 更新时间:2023-12-03 15:18:10 24 4
gpt4 key购买 nike

我有一个data.table,想要选择data.table的那些行,其中变量x的某些值相对于另一个变量y是唯一的

可以在单独的数据集中获得x的唯一值(按y分组),如下所示

dt[,unique(x),by=y]

但是我想在这种情况下选择原始数据集中的行。我不需要新的data.table,因为我还需要其他变量。

因此,我必须添加什么代码才能获得 dt中符合上述条件的行?
dt <- data.table(y=rep(letters[1:2],each=3),x=c(1,2,2,3,2,1),z=1:6) 

y x z
1: a 1 1
2: a 2 2
3: a 2 3
4: b 3 4
5: b 2 5
6: b 1 6

我想要的是:
   y x z
1: a 1 1
2: a 2 2
3: b 3 4
4: b 2 5
5: b 1 6

最佳答案

data.table在使用duplicated的方式上有些不同。这是我之前在这里看到的方法:

dt <- data.table(y=rep(letters[1:2],each=3),x=c(1,2,2,3,2,1),z=1:6) 
setkey(dt, "y", "x")
key(dt)
# [1] "y" "x"
!duplicated(dt)
# [1] TRUE TRUE FALSE TRUE TRUE TRUE
dt[!duplicated(dt)]
# y x z
# 1: a 1 1
# 2: a 2 2
# 3: b 1 6
# 4: b 2 5
# 5: b 3 4

关于r - 按组获取唯一值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18481930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com