이를 구현하지 않는 함수에서 tidyselect 선택 도우미 사용

Aurele

이를 구현하지 않는 함수에서 연속 변수 범위를 선택하는 것과 같이 dplyr/ tidyselect"헬퍼 선택" 을 사용하는 방법은 :무엇입니까?
가능하다면 간단하고 우아한 방식으로 (물론 이것은 주관적입니다).

다음은의 예입니다 dplyr::distinct. 질문은 일반적입니다.

library(dplyr)

mtcars %>% 
  distinct(vs:gear, 
           .keep_all = TRUE)
#> Warning in vs:gear: numerical expression has 32 elements: only the first used

#> Warning in vs:gear: numerical expression has 32 elements: only the first used
#> Error: Column `vs:gear` must be length 32 (the number of rows) or one, not 5

하는 최초의 시도 dplyr::select. 더 잘할 수 있습니까?

mtcars %>% 
  distinct(!!! syms(names(select(., vs:gear))),
           .keep_all = TRUE)
#>    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> 1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#> 2 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
#> 3 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
#> 4 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
#> 5 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
#> 6 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
#> 7 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2

https://tidyselect.r-lib.org/articles/tidyselect.html을 기반으로 한 두 번째 시도 , 실제로 더 나쁘게 느껴집니다.

# With tidyselect >= 1.0
mtcars %>% 
  distinct(!!! syms(names(tidyselect::eval_select(quote(vs:gear), .))),
           .keep_all = TRUE)
#>    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> 1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#> 2 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
#> 3 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
#> 4 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
#> 5 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
#> 6 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
#> 7 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2

# Or equivalently
distinct2 <- function(.data, ..., .keep_all = FALSE) {
  expr <- rlang::expr(c(...))
  pos <- tidyselect::eval_select(expr, data = .data)
  dplyr::distinct(.data = .data, .keep_all = .keep_all,
                  !!! syms(names(pos)))
}
mtcars %>% 
  distinct2(vs:gear, .keep_all = TRUE)
tmfmnk

이미 언급 한 경우를 제외하고 다음을 distinct_at()시도해 볼 수도 있습니다.

mtcars %>%
 distinct(!!!select(., vs:gear), .keep_all = TRUE)

   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
2 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
3 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
4 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
5 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
6 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
7 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

`dplyr :: filter_at`에서`tidyselect`를 사용하여 특정 열 선택

분류에서Dev

포함 선택기를 이미 사용하고있는 경우 시작-함수 선택기를 사용하는 이유

분류에서Dev

마우스를 사용하지 않고 터미널에서 텍스트 선택

분류에서Dev

재귀 함수 내에서 도우미 함수를 사용하는 이유는 무엇입니까?

분류에서Dev

tidyselect 도우미로 변수를 초기화하는 방법은 무엇입니까?

분류에서Dev

r rlang : tidyselect 도우미에서 is_quosure 사용

분류에서Dev

왜 tidyselect 도우미 함수 "where"가 dplyr 도우미 함수 "across"내에서 감지 될 수 있습니까?

분류에서Dev

선택 도구를 사용할 때 Photoshop CC에서 원하지 않는 여러 줄

분류에서Dev

Lumen에서 도우미를 사용하여 드라이버 패턴을 구현하는 방법

분류에서Dev

jQuery를 사용하여이 함수에서 함수를 호출 할 요소를 선택하는 방법

분류에서Dev

clojure를 사용하여 도우미 함수 자동 선언

분류에서Dev

선택 쿼리의 LEFT 함수에서 null 검사를하지 않는 방법

분류에서Dev

Android : Fragment를 사용하여 한 번에 하나의 이미지보기 만 선택하려는 경우

분류에서Dev

Azure Durable Functions Orchestator에서 비동기 도우미 함수를 사용하는 것이 안전합니까?

분류에서Dev

"선택"도우미가있는 사용자 지정

분류에서Dev

지구본을 회전하는 방법, 마우스 클릭을 사용하여 지구본에서 위치를 선택할 때 지구본이 옆으로 기울어지지 않도록?

분류에서Dev

Matlab 내장 함수를 사용하지 않고 RGB 이미지에 컬러 히스토그램 구현 샘플

분류에서Dev

사용자가 jquery 날짜 선택기에서 날짜를 선택하도록 허용하지 않습니다.

분류에서Dev

선택기 선택을 사용하여 이미지를 UIImage보기에 표시하는 방법

분류에서Dev

Microsoft PICT 도구를 사용하여 조건이 충족되지 않는 경우 선택하지 않는 방법은 무엇입니까?

분류에서Dev

sqlalchemy를 사용하여 테이블 열에서 문자 af를 포함하지 않는 고유 값 선택

분류에서Dev

연도에 작동하지 않는 날짜 사이 선택-MySQL

분류에서Dev

사용자가 multer를 사용하여 파일을 선택하지 않는 경우 양식 데이터에서 "req.file.path"를 무시하는 방법

분류에서Dev

tidyselect 함수를 사용하여 dplyr로 열 이름 이름 바꾸기

분류에서Dev

CSS를 사용하여 열 내에서 이미지 선택

분류에서Dev

JUNG에서 마우스 선택기를 구현하는 방법

분류에서Dev

Docker는 볼륨에 Dockerfile 및 영구 도우미 파일을 사용하여 이미지를 만듭니다.

분류에서Dev

마우스를 사용하지 않고 명령 줄에서 n 번째 결과를 선택하는 방법

분류에서Dev

SQL 코드를 사용하여 순서가 맞지 않는 최신 ID를 선택하는 방법 (정렬 했음에도 불구하고)

Related 관련 기사

  1. 1

    `dplyr :: filter_at`에서`tidyselect`를 사용하여 특정 열 선택

  2. 2

    포함 선택기를 이미 사용하고있는 경우 시작-함수 선택기를 사용하는 이유

  3. 3

    마우스를 사용하지 않고 터미널에서 텍스트 선택

  4. 4

    재귀 함수 내에서 도우미 함수를 사용하는 이유는 무엇입니까?

  5. 5

    tidyselect 도우미로 변수를 초기화하는 방법은 무엇입니까?

  6. 6

    r rlang : tidyselect 도우미에서 is_quosure 사용

  7. 7

    왜 tidyselect 도우미 함수 "where"가 dplyr 도우미 함수 "across"내에서 감지 될 수 있습니까?

  8. 8

    선택 도구를 사용할 때 Photoshop CC에서 원하지 않는 여러 줄

  9. 9

    Lumen에서 도우미를 사용하여 드라이버 패턴을 구현하는 방법

  10. 10

    jQuery를 사용하여이 함수에서 함수를 호출 할 요소를 선택하는 방법

  11. 11

    clojure를 사용하여 도우미 함수 자동 선언

  12. 12

    선택 쿼리의 LEFT 함수에서 null 검사를하지 않는 방법

  13. 13

    Android : Fragment를 사용하여 한 번에 하나의 이미지보기 만 선택하려는 경우

  14. 14

    Azure Durable Functions Orchestator에서 비동기 도우미 함수를 사용하는 것이 안전합니까?

  15. 15

    "선택"도우미가있는 사용자 지정

  16. 16

    지구본을 회전하는 방법, 마우스 클릭을 사용하여 지구본에서 위치를 선택할 때 지구본이 옆으로 기울어지지 않도록?

  17. 17

    Matlab 내장 함수를 사용하지 않고 RGB 이미지에 컬러 히스토그램 구현 샘플

  18. 18

    사용자가 jquery 날짜 선택기에서 날짜를 선택하도록 허용하지 않습니다.

  19. 19

    선택기 선택을 사용하여 이미지를 UIImage보기에 표시하는 방법

  20. 20

    Microsoft PICT 도구를 사용하여 조건이 충족되지 않는 경우 선택하지 않는 방법은 무엇입니까?

  21. 21

    sqlalchemy를 사용하여 테이블 열에서 문자 af를 포함하지 않는 고유 값 선택

  22. 22

    연도에 작동하지 않는 날짜 사이 선택-MySQL

  23. 23

    사용자가 multer를 사용하여 파일을 선택하지 않는 경우 양식 데이터에서 "req.file.path"를 무시하는 방법

  24. 24

    tidyselect 함수를 사용하여 dplyr로 열 이름 이름 바꾸기

  25. 25

    CSS를 사용하여 열 내에서 이미지 선택

  26. 26

    JUNG에서 마우스 선택기를 구현하는 방법

  27. 27

    Docker는 볼륨에 Dockerfile 및 영구 도우미 파일을 사용하여 이미지를 만듭니다.

  28. 28

    마우스를 사용하지 않고 명령 줄에서 n 번째 결과를 선택하는 방법

  29. 29

    SQL 코드를 사용하여 순서가 맞지 않는 최신 ID를 선택하는 방법 (정렬 했음에도 불구하고)

뜨겁다태그

보관