을 사용하여 선택 항목을 추가로 하위 집합으로 만들었습니다. 파이프 연산자가 %>%
인 것으로 확인되어 코드를보다 쉽게 읽을 수 있습니다. 여기 내 MWE입니다.R : 파이프 %> % 및 자리 표시 자
library(dplyr) # for the pipe operator
library(lsr) # for the cohensD function
set.seed(4) # make it reproducible
dat <- data.frame( # create data frame
subj = c(1:6),
pre = sample(1:6, replace = TRUE),
post = sample(1:6, replace = TRUE)
)
dat %>% select(pre, post) %>% sapply(., mean) # works as expected
그러나,이 특정한 경우
dat %>% select(pre, post) %>% cohensD(.$pre, .$post) # piping returns an error
cohensD(dat$pre, dat$post) # classical way works fine
왜 $
와 조합 .
지정자를 사용하는 열을 서브 세트 불가능에 파이프 연산자를 사용 고투? 파이프 연산자 %>%
을 사용하여이 행을 작성하는 것이 좋습니까? 아니면 구문이 복잡합니까? 이것을 쓰는 고전적인 방법은 더 간결 해 보인다.
'%> %'파이프 연산자가 첫 번째 인자로 왼쪽을 파이프하기 때문에 아마 에러가 발생한다. 오른쪽. 그러나'cohensD' 함수는 data.frame을 받아들이는 첫 번째 인수를 갖고 있지 않습니다. IMO 기본 R 구문으로 이것을 작성하는 것이 더 깔끔합니다. –
이렇게하면됩니다 :'dat %> % select (pre, post) %> % {cohensD (. $ pre,. $ post)}'. 마지막 호출은 함수가 아닌 표현식처럼 취급됩니다. 표현식에 무언가를 파이프하면 '.'가 예상대로 바뀝니다. 나는 종종이 트릭을 사용하여 파이핑과 잘 인터페이싱하지 않는 함수를 호출한다. –