programing

R에서 변수 이름을 지정할 때 선호하는 스타일은 무엇입니까?

muds 2023. 6. 25. 20:35
반응형

R에서 변수 이름을 지정할 때 선호하는 스타일은 무엇입니까?

R 코드에서 변수와 함수의 이름을 지정하기 위한 규칙은 무엇입니까?

제가 아는 한, 몇 가지 다른 관습이 있는데, 이 모든 것이 불협화음의 조화로 공존합니다.

마침표 구분기 사용(예:

  stock.prices <- c(12.01, 10.12)
  col.names    <- c('symbol','price')

찬성: R 커뮤니티에서 역사적인 우선 순위를 가지고 있으며, R 코어 전체에 널리 퍼져 있으며, Google의 R 스타일 가이드에 의해 추천됩니다.

단점: 객체 지향적인 함축성이 풍부하고, Rewbies에게 혼란스럽습니다.

밑줄 사용

  stock_prices <- c(12.01, 10.12)
  col_names    <- c('symbol','price')

찬성: 많은 프로그래밍 언어에서 일반적인 규칙으로, 해들리 위컴의 스타일 가이드가 선호하며 ggplot2와 plyr 패키지에 사용됩니다.

단점: R 프로그래머에 의해 역사적으로 사용되지 않으며, Emacs-Speaks-Statistics의 '<-' 연산자에 짜증나게 매핑됩니다('ess-togle-underscore'로 변경 가능).

혼합 대문자 사용(camelCase)

  stockPrices <- c(12.01, 10.12)
  colNames    <- c('symbol','price')

찬성: 여러 언어 커뮤니티에서 널리 채택되고 있는 것으로 보입니다.

단점: 최근 전례가 있지만 역사적으로 사용되지는 않습니다(R 기반 또는 문서에서).

마지막으로, 충분히 혼란스럽지 않은 것처럼, 저는 구글 스타일 가이드가 변수에 대한 점 표기법을 주장하지만 함수에 대한 혼합 대문자화를 주장한다는 것을 지적해야 합니다.

R 패키지 간에 일관된 스타일이 없다는 것은 여러 수준에서 문제가 됩니다.개발자의 관점에서 볼 때, 다른 사람의 코드를 유지하고 확장하는 것을 어렵게 만듭니다(예: 스타일이 자신의 코드와 일치하지 않는 경우).R 사용자의 관점에서, 일관되지 않은 구문은 개념이 표현될 수 있는 방법(예: 해당 날짜 캐스팅 기능이 Date(), as.date() 또는 as_date()인가요?)을 곱하여 R의 학습 곡선을 심화시킵니다.아니요, 그냥.날짜().

이전 답변이 좋았으므로 여기에 조금만 추가하면 됩니다.

  • ESS 사용자에게 밑줄은 정말 짜증나는 일입니다. ESS 사용자가 작성한 코드에서 밑줄을 많이 볼 수 없습니다. (그리고 이 세트에는 Hadley와 같은 예외적인 R Core 뿐만 아니라 CRAN 저자도 다수 포함되어 있습니다.)

  • 점은 간단한 방법 파견에서 혼동될 수 있기 때문에 사악하기도 합니다. 저는 R 목록 중 하나에서 이러한 효과에 대한 의견을 읽은 적이 있다고 생각합니다. 점은 역사적 유물이며 더 이상 장려되지 않습니다.

  • 그래서 우리는 여전히 마지막 라운드에 서 있는 확실한 승자가 있습니다: 낙타 케이스.저는 또한 'R 커뮤니티의 선례가 부족하다'는 주장에 정말 동의하는지 확신할 수 없습니다.

그리고 그렇습니다: 실용주의와 일관성이 독단을 능가합니다.그래서 동료들과 공동 저자들에 의해 작동하고 사용되는 것은 무엇이든.결국, 우리는 여전히 논쟁할 공백과 교정기가 있습니다:)

저는 R 저널에 합격한 CRAN에서 실제로 사용되는 명명 규칙이 무엇인지 조사했습니다 :) 여기 그 결과를 요약한 그래프가 있습니다.

enter image description here

함수 이름과 기간에 하위 CamelCase가 가장 많이 사용된 것으로 나타났습니다(놀랍지 않을 수도 있음).매개 변수에 가장 자주 사용되는 구분 이름입니다.그러나 Google의 R 스타일 가이드에서 주장하는 것처럼 UpperCamelCase를 사용하는 것은 매우 드문 일이며, 그들이 해당 명명 규칙을 사용하는 것을 옹호하는 것은 약간 이상합니다.

전체 문서는 다음과 같습니다.

http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Baaaath.pdf

끝까지 밑줄을 그으세요!일반적인 의견과는 달리, 기본 R에는 밑줄을 사용하는 많은 함수가 있습니다.려달을 합니다.grep("^[^\\.]*$", apropos("_"), value = T)그들 모두를 보기 위해.

저는 공식적인 해들리 스타일의 코딩을 사용합니다 ;)

저는 낙타가 실제로 의미 있는 것을 제공하는 자료형과 같은 낙타 케이스를 좋아합니다.

dfProfitLoss, 여기서 df = 데이터 프레임

또는

vdfMergedFiles(), 함수가 벡터를 가져와서 데이터 프레임을 뱉습니다.

제 생각에는 _ 가독성을 정말 높이는 것 같지만, 이름에 .-_ 또는 다른 문자를 사용하는 것에는 너무 많은 문제가 있는 것 같습니다.특히 여러 언어를 넘나들며 일한다면 더욱 그렇습니다.

이것은 개인적인 선호도로 귀결되지만, 저는 구글 스타일 가이드가 핵심 팀의 스타일과 일치하기 때문에 그것을 따릅니다.저는 아직 기본 R의 변수에서 밑줄을 보지 못했습니다.

여기서 지적한 바와 같이:

식별자의 장황성이 프로그래머의 성능에 어떤 영향을 미칩니까?

동료/사용자가 비원어민일 경우 변수 이름이 얼마나 이해할 수 있는지 기억할 가치가 있습니다.

그렇기 때문에 대문자보다 밑줄과 마침표가 더 낫지만, 스크립트 내에서 일관성이 필수적입니다.

다른 사람들이 언급했듯이, 밑줄은 많은 사람들을 망치게 할 것입니다.아니요, 그것은 장황하지는 않지만 특별히 흔하지도 않습니다.

점을 분리막으로 사용하는 것은 S3 클래스 등에서 약간 털이 납니다.

내 경험에 따르면, R의 많은 더러운 멍청이들은 점 사용과 약간의 밑줄이 있는 낙타 케이스의 사용을 선호하는 것 같습니다.

저는 혼합자본을 선호합니다.

그러나 변수 유형이 무엇인지 나타내는 데 마침표를 자주 사용합니다.

mixedCapitals.mat은 행렬이고 mixedCapitals.lm은 선형 모델이며 mixedCapitals.lst는 목록 개체입니다.

등등.

보통 저는 밑줄의 ix와 혼합 대문자(camelCase)를 사용하여 변수의 이름을 바꿉니다.단순 변수는 밑줄을 사용하여 이름을 지정합니다. 예:

PSOE_votes -> PSOE(스페인의 정치 그룹)에 대한 투표 수.

PSOE_states -> Categical, PSOE가 {Aragon, Andalucia, ...}에서 승리한 상태를 나타냅니다.

PSOE_political_force -> 범주, PSOE의 정치 집단 사이의 위치를 나타냄 {첫 번째, 두 번째, 세 번째)

PSOE_07 -> 2007년 PSOE_투표 + PSOE_states + PSOE_political_force 연합 (제목 -> 투표, 주, 위치)

내 변수가 혼합 대문자를 사용하여 하나/둘 변수 I에 적용된 함수의 결과인 경우.

예:

positionX states < - xtabs(~states+position, PSOE_07)

언급URL : https://stackoverflow.com/questions/1944910/what-is-your-preferred-style-for-naming-variables-in-r

반응형