【发布时间】:2020-12-01 20:39:01
【问题描述】:
假设我有以下向量
vec <- rep(1:20,sample(1:5, 20, replace = T))
table(vec)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 5 4 3 5 2 1 1 3 5 3 2 3 1 5 5 3 1 4 1
我只想保留出现一次的数字。任何出现不止一次的东西,我都想删除它。所以最后我想结束
1 7 8 14 18 20
目前,我正在使用以下命令生成它
vec2 <- names(which(table(vec) == 1))
vec2
但我想知道是否有一种更高效(更高效)的方式来做到这一点。
【问题讨论】:
-
试试
vec[!vec %in% vec2] -
data.table::data.table(vec)[, .N, vec][N == 1, vec]对于更大的向量比表快得多
标签: r