카테고리 보관물: stats

stats

R에서 ‘주석’기능을 잘 사용하는 것은 무엇입니까? important data

방금 commentR 에서 함수를 발견 했습니다. 예 :

x <- matrix(1:12, 3,4)
comment(x) <- c("This is my very important data from experiment #0234",
                "Jun 5, 1998")
x
comment(x)

이 기능을 처음 사용했을 때이 기능이 일반적이고 유용한 용도가 무엇인지 궁금했습니다. Google에서 “R 댓글”을 검색하고 관련 결과를 찾기가 매우 어려우므로 여기 누군가가 자신의 경험을 공유하기를 바랍니다.



답변

두 번째 @Gavin을 위해 Frank Harrell은 Hmisc 패키지 에서 R의 주석이 달린 data.frame 을 처리하는 효율적인 방법을 개발했습니다 . 예를 들어, label()units()함수를 사용하면 R 객체에 전용 속성을 추가 할 수 있습니다. data.frame 요약을 생성 할 때 매우 편리합니다 (예 : with describe()).

이러한 추가 속성을 사용하는 또 다른 유용한 방법은 데이터 세트에 타임 스탬프를 적용하는 것입니다. 또한 무작위 시드, 폴드 번호 (k-kold 또는 LOO 교차 검증을 사용할 때)와 같은 속성을 추가합니다.


답변

−1

−1

comment()나중에 참조 할 수 있도록이 정보를 데이터 프레임에 첨부하는 좋은 방법으로 보았습니다 .


답변

Stata-notes- 명령 과 같은 다른 패키지에도 유사한 기능이 있습니다 . 이를 사용 하여 변수의 전체 세부 사항, 예를 들어 생화학 적 측정에 대한 분석 세부 사항 또는 설문지 데이터에 대한 질문의 정확한 표현 을 문서화 합니다. 이것은 종종 변수 이름이나 레이블에 대한 정보가 너무 많으며, 둘 중 하나 또는 둘 다 변수와 관련된 모든 분석 결과에 표시되므로 합리적으로 짧게 유지하는 것이 가장 좋습니다.


답변

내가 많이하는 일 중 하나는 데이터와 객체를 생성하는 데 사용되는 명령을 추적하는 것이며 주석이 유용한 도구라는 것을 알았습니다.

‘matched.call.data’및 ‘generate.command.string’이 트릭을 수행합니다. 완벽하지는 않지만 도움이되며 ‘comment ()’를 사용하십시오. 🙂

# Comments only accept strings...
# Substituting the escaped quotes ('\"') makes it prettier.
generate.command.string <- function( matched.call.data )
{
  command.string <- as.character( bquote( .( list( matched.call.data ) ) ) )
  sapply( bquote( .(command.string) ),
                  USE.NAMES=FALSE,
                  function( x )
                    gsub( "\\\"", "\'", as.list( match.call() )$x )[[2]] )
}

# Some generating function...
generate.matrix <- function( nrows, ncols, data=NA ) {
  # Some generated object
  mat <- matrix( data= data, nrow= nrows, ncol= ncols )

  matched.call.data <- do.call( "call",
                                c( list( as.character( match.call()[[1]] ) ),
                                lapply( as.list( match.call() )[-1], eval ) ) )
  comment( mat ) <- c( Generated= date(),
                       Command = generate.command.string( matched.call.data ) )

  mat
}

# Generate an object with a missing argument.
emptyMat <- generate.matrix( nrows=2, ncols=2 )
comment( emptyMat )

# Generate without formally stating arguments.
dataMat <- generate.matrix( 2, 2, sample(1:4, 4, replace= TRUE ) )
comment( dataMat )

# And with a longer command.
charMat <- generate.matrix( 3, 3,
                  c( 'This', 'is', 'a', 'much', 'longer',
                     'argument', 'section', 'that', 'wraps') )
comment( charMat )

# And with a variable.
myData <- c( 'An', 'expanded', 'command', 'argument')
charMat2 <- generate.matrix( 2, 2, myData )
comment( charMat2 )

# Create a new object from an original command.
Sys.sleep(1)
emptyMat2 <- eval( parse( text= comment( emptyMat )[['Command']] ) )
dataMat2 <- eval( parse( text= comment( emptyMat )[['Command']] ) )

# Check equality of the static matrices.
identical( emptyMat, emptyMat2 )

# The generation dates are different.
all.equal( emptyMat, emptyMat2, check.attributes= FALSE )
comment( emptyMat )['Generated'] <- NA
comment( emptyMat2 )['Generated'] <- NA
identical( emptyMat, emptyMat2 )

# Command argument structure still works too.
str( as.list( match.call(
  generate.matrix, parse( text=comment( charMat2 )[[ 'Command' ]] ) ) )[-1] )

답변

R : repo패키지의 객체 관리에 대한 일반적인 솔루션을 제안 할 수 있습니다. 이를 사용하여 각 변수에 긴 이름, 설명, 태그 세트, 원격 URL, 종속성 관계를 지정하고 그림 또는 일반 외부 파일을 첨부 할 수 있습니다. 예를 들어, 소스 코드는 리포지토리 항목으로 저장되어 그에 의해 생성 된 리소스에 첨부 될 수 있습니다. CRAN ( install.packages("repo")) 의 최신 안정 릴리스 또는 github 의 최신 개발을 찾으십시오 . 빠른 개요는 여기에 있습니다 . 도움이 되길 바랍니다.


답변


이 글은 stats 카테고리에 분류되었고 태그가 있으며 님에 의해 에 작성되었습니다.