Ich versuche Funktionsargument zu verteilen, um tidyr :: Spread (Version tidyr_0.6), wie im folgenden Beispiel dargestellt. Mein Funktionsargument ist eine Zeichenfolge (Variablenname). Ich habe eine Fehlermeldung erhalten. Weiß jemand warum? Wie kann ich meinen Code ändern, damit er funktioniert?Pass Funktionsargument zu Tidyr :: Spread
# data
stocks <- data.frame(
time = as.Date('2009-01-01') + 0:9,
X = rnorm(10, 0, 1),
Y = rnorm(10, 0, 2),
Z = rnorm(10, 0, 4)
)
stocksm <- stocks %>% gather(stock, price, -time)
#function
spread.data <- function (var){
var = sym(var)
stocksm %>% spread(stock, !!var)
}
spread.data('price')
Ich habe eine Fehlermeldung erhalten.
Error: Invalid column specification
ich den Fehler nicht reproduzieren kann. Dein Code hat für mich funktioniert. Ich habe jedoch 'rlang :: sym 'angegeben. Hatten Sie ein anderes geladenes Paket mit einem ähnlichen Funktionsnamen? –
@zesla hat auch für mich gearbeitet! Obwohl ich verwirrt bin, was "!!" (doppelte Verneinung) vor Var bedeutet? –
@AkarshJain, einige Beispiele mit '' '' 'mit dplyr finden Sie unter http://dplyr.tidyverse.org/articles/programming.html#programming-recipes. – markdly