2017-02-12 15 views
1

data.tabledplyr 대신 dtplyr을 사용해야합니까? zoo, xts 등과 같이 '기본'패키지에서 많은 기능을 마스킹하므로 dplyr 또는 data.table (독립형)을 사용하는 것을 두려워해야합니까? 여기 좋은 연습이란 무엇입니까? dplyrdata.table 모두 CRAN에있는 것으로 추측됩니다. 저자는 좋은 사례를 실행 했습니까? 아니면 따라야 할 지침이 없을까요? 객체 마스킹에 대한 많은 silimar 질문을 볼 수 있는데, dplyr 객체 명명이 지저분하지 않은지 궁금하다. 아니면 그것이 최고의 선택이었을 정도로 매우 직관적 일까?data.table, dplyr 등 객체 마스킹

> library(dplyr) 
----------------------------------------------------------------------- 
data.table + dplyr code now lives in dtplyr. 
Please library(dtplyr)! 
----------------------------------------------------------------------- 

Attaching package: ‘dplyr’ 

The following objects are masked from ‘package:data.table’: 

    between, first, last 

The following objects are masked from ‘package:xts’: 

    first, last 

The following objects are masked from ‘package:stats’: 

    filter, lag 

The following objects are masked from ‘package:base’: 

    intersect, setdiff, setequal, union 
+4

(세부 = TRUE)'당신이 충돌을 알고 싶다면. 그 이외에 나는 quesiton이 무엇인지에 관해 명확하지 않다. 이것은 매우 의견을 바탕으로합니다. 네가 나에게 묻는다면 나는'dplyr '를 전혀 사용하지 말라고 말할 것이다. 당신이 [r]에 대한 사용자의 99.9 %에게 SO를 묻는다면 그들은 해들리가 쓴대로 갈등을 걱정하지 않는다고 말할 것입니다. 또한,'data.table'가베이스 R에서 마스킹되는 것을 찾을 수 없습니다.'zoo'와'xts'는 * default * 함수가 아니며'data.table'은'data.tble'에 대한 메소드를 가지고있을 것입니다. objects * only * (dplyrs'setdiff' 또는'filter'와는 달리). –

+2

예를 들어'data.table :: last'를 콘솔에 입력하면'xts :: last'와의 충돌을 명시 적으로 처리합니다. 내 생각에 이것은 인기있는 패키지와 충돌하는 모든 data.table 함수에 적용됩니다. – Frank

답변

4

충돌이 당신에게 관심사는 다음 하지 로딩 dplyr을 시도하고 대신 dplyr 배치 :: 당신이 사용하고자하는 dplyr 기능의 전면에있는 경우. dplyr의 %>%은 magrittr 패키지에서 가져오고 충돌이 없으므로로드 할 수 있습니다. 예를 들어,

library(magrittr) 

iris %>% dplyr::group_by(Species) %>% dplyr::summarize_all(mean) 

또는 당신이 이런 식으로 사용할 dplyr에서 함수를 정의 : 당신은`충돌을 실행할 수 있습니다

library(magrittr) 

group_by <- dplyr::group_by 
summarize_all <- dplyr::summarize_all 

iris %>% group_by(Species) %>% summarize_all(mean)