programing

벡터에 고유한 값을 R로 나열

batch 2023. 6. 10. 08:35
반응형

벡터에 고유한 값을 R로 나열

값이 복제되는 벡터에서 고유한 값을 나열하려면 어떻게 해야 합니까?즉, 다음 SQL 문과 유사합니다.

SELECT DISTINCT product_code
FROM data

말입니까?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

데이터가 실제로 다음과 같은 경우factor그러면 당신은 그것을 사용할 수 있습니다.levels()함수(예:

levels( data$product_code )

인자가 아니지만 인자가 되어야 하는 경우에는 먼저 인자를 사용하여 인자로 변환할 수 있습니다.factor()함수(예:

levels( factor( data$product_code ) )

위에서 언급한 또 다른 옵션은 다음과 같습니다.unique()함수:

unique( data$product_code )

둘 사이의 주요 차이점(에 적용할 경우)factor)이 바로 그것입니다.levels코드화되었지만 발생하지 않는 수준을 포함하여 수준 순서대로 문자 벡터를 반환합니다. unique반환합니다.factor값이 처음 나타나는 순서대로, 임의의 비선택적 수준이 생략됩니다(단, 여전히 에 포함됨).levels반환된 요인의).

중복 함수를 음수 연산자 "!"와 함께 사용해 보십시오.

예:

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

도움이 되길 바랍니다.

R에서 sqldf 패키지를 사용할 수도 있습니다.

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

다른 방법은 사용하는 것입니다.dplyr패키지:

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

R Language(버전 3.0+) 필터를 적용하여 목록에서 고유한 정보를 얻을 수 있습니다.

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

또는 다른 작업과 결합합니다.

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

unique필요 없음dplyr.

이것도 효과가 있을 수 있습니다.

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

결과,

  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....
    

언급URL : https://stackoverflow.com/questions/7755240/list-distinct-values-in-a-vector-in-r

반응형