Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dplyr::distinct-仅保留选定列,而不是所有列_R_Dplyr - Fatal编程技术网

dplyr::distinct-仅保留选定列,而不是所有列

dplyr::distinct-仅保留选定列,而不是所有列,r,dplyr,R,Dplyr,应用dplyr::distinct,为了只保留选定的列而不是全部(.keep_all=TRUE),我当前正在使用select选择后期: 库(dplyr) foo_df%distinct(id1,id2,.keep_all=TRUE)%%>%select(id1,id2,val1) #我想保留“val1”和唯一组合的标识符 #>id1 id2 val1 #>11A #>2 3 4 c #>packageVersion('dplyr') #> [1] ‘0.7.7’ 由(v0.2.1)于2018年

应用
dplyr::distinct
,为了只保留选定的列而不是全部(
.keep_all=TRUE
),我当前正在使用
select
选择后期:

库(dplyr)
foo_df%distinct(id1,id2,.keep_all=TRUE)%%>%select(id1,id2,val1)
#我想保留“val1”和唯一组合的标识符
#>id1 id2 val1
#>11A
#>2 3 4 c
#>packageVersion('dplyr')
#> [1] ‘0.7.7’
由(v0.2.1)于2018年12月19日创建

但是有没有更简洁的方法呢?很高兴被指向另一个函数


如果这是一个骗局,我真可耻

也许data.table语法更符合您的喜好。它比dplyr更简洁

library(data.table)

DT <- data.table(foo_df)

# ?data.table::unique
unique(DT[, .(id1, id2, val1)], by = c("id1", "id2"))

   id1 id2 val1
1:   1   1    a
2:   3   4    c
库(data.table)

你可以选择(-val2)
,当然这也是一个选项。但如果有更多的列要“取消选择”,这就不太实际了。我担心
data.table
会提供这种语法。。。也许我真的应该开始了解一下
data.table
。。。