列出 R 向量中的不同值

发布于 2024-12-09 19:24:34 字数 109 浏览 1 评论 0原文

如何列出向量中具有重复值的不同值?我的意思是,类似于下面的 SQL 语句:

SELECT DISTINCT product_code
FROM data

How can I list the distinct values in a vector where the values are replicative? I mean, similarly to the following SQL statement:

SELECT DISTINCT product_code
FROM data

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

无尽的现实 2024-12-16 19:24:34

您的意思是独特

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

Do you mean 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
偏爱自由 2024-12-16 19:24:34

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

levels( data$product_code )

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

levels( factor( data$product_code ) )

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

unique( data$product_code )

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

If the data is actually a factor then you can use the levels() function, e.g.

levels( data$product_code )

If it's not a factor, but it should be, you can convert it to factor first by using the factor() function, e.g.

levels( factor( data$product_code ) )

Another option, as mentioned above, is the unique() function:

unique( data$product_code )

The main difference between the two (when applied to a factor) is that levels will return a character vector in the order of levels, including any levels that are coded but do not occur. unique will return a factor in the order the values first appear, with any non-occurring levels omitted (though still included in levels of the returned factor).

走过海棠暮 2024-12-16 19:24:34

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

示例:

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

希望有帮助。

Try using the duplicated function in combination with the negation operator "!".

Example:

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

Hope that helps.

喜爱皱眉﹌ 2024-12-16 19:24:34

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

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

You can also use the sqldf package in R.

Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')
你与清晨阳光 2024-12-16 19:24:34

另一种方法是使用 dplyr 包:

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

another way would be to use dplyr package:

x = c(1,1,2,3,4,4,4)
dplyr::distinct(as.data.frame(x))
固执像三岁 2024-12-16 19:24:34

在 R 语言(版本 3.0+)中,您可以应用过滤器从列表中获取唯一的数据

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

或几个它与其他操作以及

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

unique 不需要dplyr。

In R Language (version 3.0+) You can apply filter to get unique out of a list-

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

or couple it with other operation as well

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

unique doesn't require dplyr.

↘紸啶 2024-12-16 19:24:34

这也可能有效,

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

结果,

  1. mpg cyl disp hp drat wt qsec 与 am gear carb 
     25 3 27 22 22 29 30 2 2 3 6 
    
  2. <前><代码>$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
    $圆柱体
    [1] 6 4 8
    美元等等......

this may work as well,

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

outcomes,

  1. mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
     25    3   27   22   22   29   30    2    2    3    6 
    
  2. $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
    $ and so on....
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文