ChatGPT解决这个技术问题 Extra ChatGPT

列出 R 中向量中的不同值

如何在值是可复制的向量中列出不同的值?我的意思是,类似于以下 SQL 语句:

SELECT DISTINCT product_code
FROM data

c
csgillespie

您的意思是 unique

R> x = c(1,1,2,3,4,4,4)
R> x
[1] 1 1 2 3 4 4 4
R> unique(x)
[1] 1 2 3 4

G
Gregor Thomas

如果数据实际上是 factor,那么您可以使用 levels() 函数,例如

levels( data$product_code )

如果它不是一个因素,但应该是,您可以先使用 factor() 函数将其转换为因素,例如

levels( factor( data$product_code ) )

如上所述,另一个选项是 unique() 函数:

unique( data$product_code )

两者之间的主要区别(当应用于 factor 时)是 levels 将返回按级别顺序排列的字符向量,包括已编码但未出现的任何级别。 unique 将按照值首先出现的顺序返回一个 factor,省略所有未出现的级别(尽管仍包含在返回因子的 levels 中)。


A
Al R.

尝试将重复函数与否定运算符“!”结合使用。

例子:

wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]

希望有帮助。


z
zx8754

您还可以在 R 中使用 sqldf 包。

Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')

A
AlexB

另一种方法是使用 dplyr 包:

x = c(1,1,2,3,4,4,4)
dplyr::distinct(as.data.frame(x))

V
Vishal Kumar Sahu

R Language(版本 3.0+)中,您可以应用过滤器以从列表中获取唯一性 -

data.list <- data.list %>% unique

或将其与其他操作结合使用

data.list.rollnumbers <- data.list %>% pull(RollNumber) %>% unique

unique 不需要 dplyr


有没有完全取代“拉”和“独特”的功能?
目前我在 R 中没有这么短的符号。Python 可能有它。
S
Seyma Kalay

这也可能有效,

1) unlist(lapply(mtcars, function(x) length(unique(x))))
2) lapply(mtcars, function(x) unique(x))

结果,

mpg cyl disp hp drat wt qsec vs am gear carb 25 3 27 22 22 29 30 2 2 3 6 $mpg [1] 21.0 22.8 21.4 18.7 18.1 14.3 24.4 19.2 17.8 16.4 17.3 15.2 10.4 14.7 32.4 30.4 33.9 21.5 15.5 13.3 27.3 26.0 15.8 19.7 15.0 $cyl [1] 6 4 8 $ 等等....


这不会像 OP 预期的那样给出输出!!