mutate 호출에서 함수 내의 열 이름에 어떻게 액세스 할 수 있습니까?

제시 커

내가 작성한 함수를 사용하여 R에서 새 열을 만들기 위해 열을 변경하고 있습니다.

내 함수 내에서 변경되는 열의 이름이 포함 된 메시지를 보내고 싶습니다.

mutate 호출 내에서 함수 내부에서 변경되는 열 이름에 어떻게 액세스 할 수 있습니까?

재현 가능한 예 :

data <- tribble(
 ~colB, 
  1, 
  2, 
  3
)

# Function that will be used in the mutate
add1 <- function(numeric_vector) {
  return(1 +numeric_vector)

  # I want to message the user the name of the column they are mutating
  # This simply returns the entire vector
  message("You mutated", numeric vector)

  # This returns 'numeric_vector'
  message("You mutated", quo_name(quo(numeric_vector)))

}

# Desired Output:
data %>% 
  mutate(colC = add1(colB))

You mutated colB
 colB  colC
 <dbl> <dbl>
   1     2
   2     3
   3     4
G. Grothendieck

클래스 객체 substitute를 반환하는 사용 name. 계산이 실패 할 경우 실행되지 않도록 계산 후에 실행되도록 message호출을에 래핑했습니다 . 그것은 중요하지 않습니다 경우 대체 단지와 함께 . 참고 자체가 어떤 패키지를 사용하지 않습니다.on.exiton.exit(message(...))message(...)add1

library(dplyr)

add1 <- function(numeric_vector) {
  on.exit(message("You mutated ", substitute(numeric_vector)))
  1 + numeric_vector
}

BOD %>% mutate(Time = add1(Time))

기부:

You mutated Time
  Time demand
1    2    8.3
2    3   10.3
3    4   19.0
4    5   16.0
5    6   15.6
6    8   19.8

rlang

rlang을 사용하려면 enexpr해당 패키지에서 사용하십시오 . dplyr에서 사용할 수 있도록합니다. 클래스 객체를 enexpr반환 name합니다.

enexpr유사 substitute하지만 처리에 영향을 미치는 한 가지 차이점 substitute은 약속이 강제되었는지 (즉, 평가되었는지 여부에 관계없이) 약속의 코드 부분을 추출 한다는 것입니다. 그러나 enexpr강제 약속의 코드는 추출하지만 강제 약속의 가치는 추출합니다. 코드 부분을 원하기 때문에 계산에 사용 되기 전에enexpr(numeric_vector) 실행 되었는지 확인해야합니다 . 처음에 실행되는 새로운 변수 도입 하여 강제 인수가 없는지 확인합니다 . numeric_vectorarg_nameenexpr

library(dplyr)

add2 <- function(numeric_vector) {
  arg_name <- enexpr(numeric_vector)
  on.exit(message("You mutated ", arg_name))
  1 + numeric_vector
}

BOD %>% mutate(Time = add2(Time))

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 JSON 배열의 제품에 어떻게 액세스 할 수 있습니까?

분류에서Dev

SHA 내장 함수에 어떻게 액세스 할 수 있습니까?

분류에서Dev

클래스 내에서 함수를 어떻게 호출 할 수 있습니까?

분류에서Dev

필터 함수 내에서 React 컴포넌트의 this.state에 어떻게 액세스 할 수 있습니까?

분류에서Dev

std :: string 내부의 char 배열에 어떻게 액세스 할 수 있습니까?

분류에서Dev

C #을 통해 json 문자열 내부의 키에 어떻게 액세스 할 수 있습니까?

분류에서Dev

tibble의 목록 열에`mutate_at`를 어떻게 사용할 수 있습니까?

분류에서Dev

PHP에서이 배열의 다른 부분에 어떻게 액세스 할 수 있습니까?

분류에서Dev

jquery에서 id 배열에 어떻게 액세스 할 수 있습니까?

분류에서Dev

열의 이름에서 제목을 어떻게 추출 할 수 있습니까?

분류에서Dev

Pandas Groupby 변환 내에서 열 이름에 액세스 할 수 있습니까?

분류에서Dev

dplyr : mutate_at 함수의 열 이름에 액세스

분류에서Dev

다른 객체 목록에서 lm () 객체의 이름에 어떻게 액세스 할 수 있습니까?

분류에서Dev

angularjs의 컨트롤러에서 필터링 된 배열에 어떻게 액세스 할 수 있습니까?

분류에서Dev

이 JSON 문자열의 특정 값에 어떻게 액세스 할 수 있습니까?

분류에서Dev

React로 useEffect 후크에 내장 된 배열에 어떻게 액세스 할 수 있습니까?

분류에서Dev

객체가있을 때 배열의 항목에 어떻게 액세스 할 수 있습니까?

분류에서Dev

PHP 복잡한 배열에 어떻게 액세스 할 수 있습니까?

분류에서Dev

특정 열 값에 어떻게 액세스 할 수 있습니까?

분류에서Dev

내 액세스 토큰을 기본값 또는 배열에 어떻게 저장할 수 있습니까?

분류에서Dev

UICollectionViewController의 헤더에서 UISegmentedControl에 어떻게 액세스 할 수 있습니까?

분류에서Dev

highcharts의 plotOptions에서 'this'필드에 어떻게 액세스 할 수 있습니까?

분류에서Dev

어떻게 코 틀린에서 열거의 "오버라이드"이름 () 메소드를 액세스 할 수 있습니까?

분류에서Dev

어떻게 하스켈에서이 함수를 호출 할 수 있습니까?

분류에서Dev

내 페이지에서 requirejs 모듈 내에 정의 된 함수를 어떻게 호출 할 수 있습니까?

분류에서Dev

이 JSON의 값에 어떻게 액세스 할 수 있습니까?

분류에서Dev

이 JSON의 객체에 어떻게 액세스 할 수 있습니까?

분류에서Dev

hapi 플러그인 이름에 어떻게 액세스 할 수 있습니까?

분류에서Dev

StyleSheet의 상태 변수에 어떻게 액세스 할 수 있습니까?

Related 관련 기사

  1. 1

    이 JSON 배열의 제품에 어떻게 액세스 할 수 있습니까?

  2. 2

    SHA 내장 함수에 어떻게 액세스 할 수 있습니까?

  3. 3

    클래스 내에서 함수를 어떻게 호출 할 수 있습니까?

  4. 4

    필터 함수 내에서 React 컴포넌트의 this.state에 어떻게 액세스 할 수 있습니까?

  5. 5

    std :: string 내부의 char 배열에 어떻게 액세스 할 수 있습니까?

  6. 6

    C #을 통해 json 문자열 내부의 키에 어떻게 액세스 할 수 있습니까?

  7. 7

    tibble의 목록 열에`mutate_at`를 어떻게 사용할 수 있습니까?

  8. 8

    PHP에서이 배열의 다른 부분에 어떻게 액세스 할 수 있습니까?

  9. 9

    jquery에서 id 배열에 어떻게 액세스 할 수 있습니까?

  10. 10

    열의 이름에서 제목을 어떻게 추출 할 수 있습니까?

  11. 11

    Pandas Groupby 변환 내에서 열 이름에 액세스 할 수 있습니까?

  12. 12

    dplyr : mutate_at 함수의 열 이름에 액세스

  13. 13

    다른 객체 목록에서 lm () 객체의 이름에 어떻게 액세스 할 수 있습니까?

  14. 14

    angularjs의 컨트롤러에서 필터링 된 배열에 어떻게 액세스 할 수 있습니까?

  15. 15

    이 JSON 문자열의 특정 값에 어떻게 액세스 할 수 있습니까?

  16. 16

    React로 useEffect 후크에 내장 된 배열에 어떻게 액세스 할 수 있습니까?

  17. 17

    객체가있을 때 배열의 항목에 어떻게 액세스 할 수 있습니까?

  18. 18

    PHP 복잡한 배열에 어떻게 액세스 할 수 있습니까?

  19. 19

    특정 열 값에 어떻게 액세스 할 수 있습니까?

  20. 20

    내 액세스 토큰을 기본값 또는 배열에 어떻게 저장할 수 있습니까?

  21. 21

    UICollectionViewController의 헤더에서 UISegmentedControl에 어떻게 액세스 할 수 있습니까?

  22. 22

    highcharts의 plotOptions에서 'this'필드에 어떻게 액세스 할 수 있습니까?

  23. 23

    어떻게 코 틀린에서 열거의 "오버라이드"이름 () 메소드를 액세스 할 수 있습니까?

  24. 24

    어떻게 하스켈에서이 함수를 호출 할 수 있습니까?

  25. 25

    내 페이지에서 requirejs 모듈 내에 정의 된 함수를 어떻게 호출 할 수 있습니까?

  26. 26

    이 JSON의 값에 어떻게 액세스 할 수 있습니까?

  27. 27

    이 JSON의 객체에 어떻게 액세스 할 수 있습니까?

  28. 28

    hapi 플러그인 이름에 어떻게 액세스 할 수 있습니까?

  29. 29

    StyleSheet의 상태 변수에 어떻게 액세스 할 수 있습니까?

뜨겁다태그

보관