Я мог бы также назвать этот вопрос: "Это достаточно хорошо для CRAN?"
У меня есть набор функций, которые я создал для определенных задач. Некоторые из них - удобные функции:
# Returns odds/evens from a vector
odds=function(vec) {
stopifnot(class(vec)=="integer")
ret = vec[fpart(vec/2)!=0]
ret
}
evens=function(vec) {
stopifnot(class(vec)=="integer")
ret = vec[fpart(vec/2)==0]
ret
}
Некоторые из них являются незначительными дополнениями, которые оказались полезными при ответе на обычный вопрос SO:
# Shift a vector over by n spots
# wrap adds the entry at the beginning to the end
# pad does nothing unless wrap is false, in which case it specifies whether to pad with NAs
shift <- function(vec,n=1,wrap=TRUE,pad=FALSE) {
if(length(vec)<abs(n)) {
#stop("Length of vector must be greater than the magnitude of n \n")
}
if(n==0) {
return(vec)
} else if(length(vec)==n) {
# return empty
length(vec) <- 0
return(vec)
} else if(n>0) {
returnvec <- vec[seq(n+1,length(vec) )]
if(wrap) {
returnvec <- c(returnvec,vec[seq(n)])
} else if(pad) {
returnvec <- c(returnvec,rep(NA,n))
}
} else if(n<0) {
returnvec <- vec[seq(1,length(vec)-abs(n))]
if(wrap) {
returnvec <- c( vec[seq(length(vec)-abs(n)+1,length(vec))], returnvec )
} else if(pad) {
returnvec <- c( rep(NA,abs(n)), returnvec )
}
}
return(returnvec)
}
Наиболее важными являются расширения существующих классов, которые не могут быть найдены нигде (например, функция панели CDF для графиков решетки, различные функции вывода xtable и LaTeX, классы для обработки и преобразования между типами геопространственных объектов и выполнения различных GIS- подобные операции, такие как наложения).
Я хотел бы сделать их доступными где-нибудь в Интернете в R-ized форме (например, размещать их в блоге, поскольку обычные текстовые функции не то, что я ищу), так что обслуживание упрощается и поэтому я и другие могут получить к ним доступ с любого компьютера, к которому я иду. Логично сделать, чтобы сделать из них пакет и отправить их в CRAN - и действительно, я уже их упаковал. Но является ли этот набор функций подходящим для пакета CRAN?
У меня есть две основные проблемы:
- Функции, похоже, не имеют согласованного наложения. Это просто набор функций, которые делают много разных вещей.
- Мой код не всегда самый красивый. Я пытался его очистить, поскольку я выучили более лучшие методы кодирования, но производя R Core-достойные красивые код не находится в карточках.
Веб-страница CRAN удивительно лишена рекомендаций по публикации. Должен ли я отправлять сообщения в CRAN, учитывая, что некоторые люди посчитают это полезным, но что он в каком-то смысле навсегда заблокирует R, чтобы иметь некоторые довольно основные имена функций? Или есть другое место, где я могу использовать команду install.packages-like для установки? Примечание. Я бы предпочел не размещать пакет на веб-странице и иметь людей для запоминания URL-адреса для установки пакета (не в последнюю очередь для проблем с управлением версиями).