네임 스페이스 종속성이 필요하지 않습니다.
CRAN에 대한 매뉴얼을 읽고 R 패키지를 빌드하려고합니다. 가져 오기를 사용하여 네임 스페이스에 함수를로드하는 것이 설명 파일에서 사용하는 것이 가장 좋은 방법이라는 것을 알 수있었습니다. 설명 파일에 추가 한 후 네임 스페이스 파일에도 추가했습니다. 필요한 함수와 함께 importFrom을 네임 스페이스 파일에 추가했습니다.
이제 패키지에서 R CMD 검사를 실행하면 다음과 같은 오류가 발생합니다.
네임 스페이스 종속성이 필요하지 않음 : 'ggplot2'
추가 정보 : 설명 파일의 Depends에 패키지를 추가해도로드되지 않습니다.
이걸 도와주세요.
아래에서 내 설명 파일을 찾으십시오.
Package: bigpackage
Type: Package
Title: Some title
Version: 1.0
Date: 2012-10-25
Author: Mayank Bansal
Maintainer: somename
Imports : R(>= 2.15.1), SweaveListingUtils( >=0.5.5),xtable(>=1.7-0),
brew(>=1.0-6), knitr(>=0.8), RHive(>= 0.0-6), ggplot2(>=0.9.2)
, brew, knitr
SystemRequirements : LaTeX(texi2dvi) must be present in the system to
create PDF reports
Description: Some Description
License: file LICENSE
LazyLoad: yes
ByteCompile: true
OS_type : unix
import
또는 importFrom
NAMESPACE 파일 을 사용하는 경우 DESCRIPTION 파일의 Imports 섹션에 해당 패키지에 대한 항목이 있어야합니다 (Deplies를 사용해야하는 이유가없는 경우 패키지에 Depends에 항목이 있어야 함). 수입품 아님)
다음은 Writing R Extensions 의 관련 섹션입니다.
'가져 오기'필드에는 네임 스페이스를 가져 왔지만 (NAMESPACE 파일에 지정된대로) 첨부 할 필요가없는 패키지가 나열됩니다. '::'및 ':::'연산자가 액세스하는 네임 스페이스는 여기에 나열되거나 '제안'또는 '향상'(아래 참조)에 나열되어야합니다. 이상적으로이 필드에는 사용되는 모든 표준 패키지가 포함되며 S4 사용 패키지를 포함하는 것이 중요합니다 (클래스 정의가 변경 될 수 있고 DESCRIPTION 파일이 이러한 상황이 발생했을 때 다시 설치할 패키지를 결정하는 데 사용되기 때문). 'Depends'필드에 선언 된 패키지는 'Imports'필드에도 없어야합니다.
단일 기능으로 패키지를 만들었습니다 f
. 나는 importFrom
당신이 당신 의 것과 같은 줄로 NAMESPACE 파일을 만들었습니다 .
NAMESPACE 파일
export("f")
importFrom("ggplot2","ggplot","geom_histogram")
이 시점에서 R CMD check
예상대로 실행 하면 오류가 발생합니다.
네임 스페이스 종속성이 필요하지 않음 : 'ggplot2'
하지만 Imports: ggplot2
DESCRIPTION 파일을 다음과 같이 추가 하면 R CMD check
문제없이 통과 됩니다.
DESCRIPTION 파일
Package: anRpackage
Type: Package
Title: What the package does (short line)
Version: 1.0
Date: 2012-11-07
Author: Me
Maintainer: Who to complain to <yourfault@somewhere.net>
Description: More about what it does (maybe more than one line)
License: GPL
Imports: ggplot2
이 문제가 발생할 수있는 간단한 이유는 @import
모든 함수에서 선언 할 때 실수로 쉼표를 사용한 경우 입니다.
예 :
#'
#' @import rvest, dplyr, stringr, jsonlite
#'
#' @export
#'
이것으로 바뀔 것이다
#'
#' @import rvest dplyr stringr jsonlite
#'
#' @export
#'
패키지 가DESCRIPTION
파일 에서 쉼표로 구분되어 있기 때문에 이것은 일반적인 오류 입니다.
참조 URL : https://stackoverflow.com/questions/13085481/namespace-dependencies-not-required
'programing' 카테고리의 다른 글
neo4j의 노드 식별자 (0) | 2021.01.15 |
---|---|
android-콘텐츠 제공자가없는 CursorLoader 및 SQLite (0) | 2021.01.15 |
`hashCode`의 기본 구현은 무엇입니까? (0) | 2021.01.15 |
함수 포인터 유형 반환 (0) | 2021.01.15 |
IACA 란 무엇이며 어떻게 사용합니까? (0) | 2021.01.15 |