R에서 변수 이름을 지정할 때 선호하는 스타일은 무엇입니까? [닫은]
R 코드에서 선호하는 변수 및 함수 명명 규칙은 무엇입니까?
내가 말할 수있는 한, 몇 가지 다른 관습이 있으며, 모두 불협화음으로 공존합니다.
1. 마침표 구분자 사용, 예 :
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
장점 : R 커뮤니티에서 역사적 우선 순위를 가지며 R 코어 전체에 널리 퍼져 있으며 Google의 R 스타일 가이드에서 권장합니다 .
단점 : 객체 지향적 의미가있는 Rife 및 R 초보자에게 혼란
2. 밑줄 사용
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
장점 : 많은 프로그래밍 언어의 공통 관례입니다. Hadley Wickham의 스타일 가이드가 선호 하며 ggplot2 및 plyr 패키지에서 사용됩니다.
단점 : 역사적으로 R 프로그래머가 사용하지 않았습니다. Emacs-Speaks-Statistics ( 'ess-toggle-underscore'로 변경 가능)의 '<-'연산자에 성가 시게 매핑됩니다.
3. 혼합 대문자 사용 (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
장점 : 여러 언어 커뮤니티에서 광범위하게 채택되는 것으로 보입니다.
단점 : 최근 선례가 있지만 역사적으로 사용되지 않았습니다 (R 기반 또는 문서에서).
마지막으로, 충분히 혼란스럽지 않은 것처럼 Google 스타일 가이드는 변수에 대한 점 표기법을 주장하지만 함수에 대해서는 대문자를 혼합하여 주장한다는 점을 지적해야합니다.
R 패키지 전반에 걸쳐 일관된 스타일의 부족은 여러 수준에서 문제가됩니다. 개발자의 관점에서 볼 때 다른 사람의 코드를 유지하고 확장하기가 어렵습니다 (특히 스타일이 자신과 일치하지 않는 경우). R 사용자의 관점에서 볼 때 일관성없는 구문은 개념을 표현할 수있는 방식을 곱하여 R의 학습 곡선을 가파르게합니다 (예 : 날짜 캐스팅 함수 asDate (), as.date () 또는 as_date ()?) 아니요, 그대로입니다. 데이트()).
좋은 이전 답변이므로 여기에 약간 추가하십시오.
밑줄은 ESS 사용자에게 정말 짜증납니다. ESS가 꽤 널리 사용된다는 점을 감안할 때 ESS 사용자가 작성한 코드에는 많은 밑줄이 표시되지 않을 것입니다 (그 세트에는 CRAN 작성자뿐만 아니라 R Core도 포함되어 있습니다.
점들도 단순한 메소드 디스패치에서 뒤섞 일 수 있기 때문에 악합니다. 저는 R 목록 중 하나에서이 효과에 대한 주석을 읽은 적이 있다고 생각합니다. 점은 역사적인 유물이며 더 이상 권장되지 않습니다.
그래서 우리는 마지막 라운드에서 여전히 확실한 승자가 있습니다 : camelCase. 나는 또한 'R 커뮤니티에서 전례가 없다'는 주장에 정말로 동의하는지 확실하지 않습니다.
그리고 그렇습니다 : 실용주의와 일관성이 교리를 능가합니다. 따라서 동료와 공동 저자가 작동하고 사용하는 모든 것이 있습니다. 결국, 우리는 여전히 논쟁 할 공백과 중괄호가 있습니다. :)
R 저널에 승인 된 CRAN에서 실제로 사용되는 명명 규칙에 대한 설문 조사를 수행했습니다. 결과를 요약 한 그래프는 다음과 같습니다.
lowerCamelCase가 함수 이름과 마침표로 가장 자주 사용되는 것으로 밝혀졌습니다. 그러나 Google의 R 스타일 가이드에서 옹호하는 것처럼 UpperCamelCase를 사용하는 것은 매우 드물며 이러한 명명 규칙을 사용하여 옹호하는 것은 조금 이상합니다.
전체 논문은 다음과 같습니다.
http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Baaaath.pdf
밑줄 끝까지! 대중의 의견과는 달리 밑줄을 사용하는 기본 R에는 여러 기능이 있습니다. grep("^[^\\.]*$", apropos("_"), value = T)
그들 모두를보기 위해 달려라 .
나는 공식 Hadley 스타일 의 코딩을 사용합니다 .)
저는 camel이 실제로 데이터 유형과 같은 의미있는 것을 제공 할 때 camelCase를 좋아합니다.
dfProfitLoss, 여기서 df = 데이터 프레임
또는
vdfMergedFiles (), 여기서 함수는 벡터를 받아 데이터 프레임을 뱉어냅니다.
_가 가독성을 높이는 데 도움이되지만 이름에 .-_ 또는 다른 문자를 사용하는 데 너무 많은 문제가있는 것 같습니다. 특히 여러 언어로 작업하는 경우.
이것은 개인적인 취향에 달려 있지만 핵심 팀의 스타일과 일치하기 때문에 Google 스타일 가이드를 따릅니다. 기본 R의 변수에 아직 밑줄이 표시되지 않았습니다.
내가 여기서 지적했듯이 :
식별자의 자세한 정도는 프로그래머의 성능에 어떤 영향을 미칩니 까?
동료 / 사용자가 원어민이 아닌 경우 변수 이름이 얼마나 이해할 수 있는지 염두에 두는 것이 좋습니다.
그렇기 때문에 밑줄과 마침표가 대문자보다 낫다고 말하고 싶지만 여러분이 지적했듯이 일관성은 스크립트 내에서 필수적입니다.
다른 사람들이 언급했듯이 밑줄은 많은 사람들을 망칠 것입니다. 아니요, verboten은 아니지만 특히 일반적이지 않습니다.
점을 구분 기호로 사용하면 S3 클래스 등에서 약간 복잡해집니다.
내 경험에 따르면 R의 많은 멍청이가 camelCase 사용을 선호하는 것 같으며 일부 점 사용과 밑줄이 번져 있습니다.
mixedCapitals를 선호합니다.
그러나 나는 종종 마침표를 사용하여 변수 유형이 무엇인지 나타냅니다.
mixedCapitals.mat는 행렬입니다. mixedCapitals.lm은 선형 모델입니다. mixedCapitals.lst는 목록 객체입니다.
등등.
일반적으로 ix의 밑줄과 혼합 대문자 (camelCase)를 사용하여 변수 이름을 바꿉니다. 간단한 변수는 밑줄을 사용하여 이름을 지정합니다. 예 :
PSOE_votes- > PSOE (스페인의 정치 그룹)에 대한 투표 수.
PSOE_states- > Categorical, PSOE가이기는 주를 나타냅니다 {Aragon, Andalucia, ...)
PSOE_political_force- > 범주, PSOE의 정치 그룹 간의 위치를 나타냅니다 (첫 번째, 두 번째, 세 번째)
PSOE_07- > 2007 년 PSOE_votes + PSOE_states + PSOE_political_force 연합 (h eader- > 투표, 주, 위치 )
내 변수가 하나 / 두 개의 변수에 적용된 함수의 결과 인 경우 혼합 대문자를 사용합니다.
예:
positionXstates <-xtabs (~ states + position, PSOE_07)
참고 URL : https://stackoverflow.com/questions/1944910/what-is-your-preferred-style-for-naming-variables-in-r
'Programming' 카테고리의 다른 글
HTML5 오디오가 재생 중인지 확인 하시겠습니까? (0) | 2020.08.07 |
---|---|
Julia에서 "기호"는 무엇입니까? (0) | 2020.08.07 |
Rails : 컨트롤러에서 다른 컨트롤러 작업 호출 (0) | 2020.08.07 |
잡히지 않은 ReferenceError : jQuery가 정의되지 않았습니다 (0) | 2020.08.07 |
클라우드, 그리드 및 클러스터의 차이점은 무엇입니까? (0) | 2020.08.07 |