22
Piszę funkcję, która obejmuje inną funkcję z bazy R z wieloma argumentami. Na przykład (prawdziwa funkcja jest znacznie dłuższa):jak przekazywać argumenty do funkcji w funkcji r
myfunction <- function (dataframe, Colv = NA) {
matrix <- as.matrix (dataframe)
out <- heatmap(matrix, Colv = Colv)
return(out)
}
data(mtcars)
myfunction (mtcars, Colv = NA)
termiczna ma wiele argumentów, które mogą być przekazywane do:
heatmap(x, Rowv=NULL, Colv=if(symm)"Rowv" else NULL,
distfun = dist, hclustfun = hclust,
reorderfun = function(d,w) reorder(d,w),
add.expr, symm = FALSE, revC = identical(Colv, "Rowv"),
scale=c("row", "column", "none"), na.rm = TRUE,
margins = c(5, 5), ColSideColors, RowSideColors,
cexRow = 0.2 + 1/log10(nr), cexCol = 0.2 + 1/log10(nc),
labRow = NULL, labCol = NULL, main = NULL,
xlab = NULL, ylab = NULL,
keep.dendro = FALSE, verbose = getOption("verbose"), ...)
Chcę korzystać z tych argumentów nie wymieniając je wewnątrz myFunction.
myfunction (mtcars, Colv = NA, col = topo.colors(16))
Error in myfunction(mtcars, Colv = NA, col = topo.colors(16)) :
unused argument(s) (col = topo.colors(16))
Próbowałem następujących, ale nie działa:
myfunction <- function (dataframe, Colv = NA) {
matrix <- as.matrix (dataframe)
out <- heatmap(matrix, Colv = Colv, ....)
return(out)
}
data(mtcars)
myfunction (mtcars, Colv = NA, col = topo.colors(16))
Wystarczy dodać opcja (lub dodaj zamieszanie), możesz zwiększyć zawartość '...', ustawiając zmienną w swojej głównej funkcji 'dotfuns <-list (..., other_variable)' i przekazując ją do kolejnych funkcji. Zrób to na własne ryzyko :-) –
@CarlWitthoft przepraszam, nie mogłem dostać tego, co masz na myśli, może exand swoje rozwiązanie (być może jako odpowiedź) – jon
To nie była odpowiedź na twój konkretny problem, tylko komentarz na temat innych rzeczy, które mogą zrobić z zbiorem argumentów "...". –