2016-10-21 3 views
0

Ich versuche, ein Histogramm der Dichte zu erstellen, und ich habe den Fehler: Argument 'x' muss numerisch sein. Ich habe versucht, (as.numeric (input $ d)) statt nur d zu verwenden, aber habe den gleichen Fehler bekommen. Weiß jemand, wie man das löst?Fehler: Argument

server.R

output$hist <- renderPlot({ 

    input$action 

    if(is.null(input$action)) 
    return(NULL) 

    else 

    isolate({ 

     trees3 <- FindTreesCHM(chm(), (as.numeric(input$fws)), (as.numeric(input$minht))) 
     d <- density(trees3["height"]) 
     plot(d, xlab = "Height", ylab = "Density", main = "") 
     polygon((as.numeric(input$d)), col = "darkseagreen") 

    }) 
    }) 

Danke sehr! :)

Antwort

0

Ich denke, dass das Problem in d <- density(trees3["height"]) ist. Das erste Argument der density-Funktion ist x und es sollte numerisch sein. Sie verwenden [] anstelle von [[]]. [] geben Sie die Liste der Elemente zurück und [[]] geben Sie das einzelne Element in der Liste zurück. So versuchen, nur

d <- density(trees3["height"])

mit

d <- density(trees3[["height"]]) ändern.

Auch glaube ich nicht, dass Sie die else in Ihrem Code benötigen. Aber wenn Sie eine if...else Anweisung verwenden müssen, stellen Sie sicher, dass:

It is important to note that else must be in the same line as the closing braces of the if statements. http://www.programiz.com/r-programming/if-else-statement

+0

Hey Geovany! Ich verstehe deinen Standpunkt und es hat gut geklappt Mann! Ich schätze deine Hilfe sehr. Aber hier ist ein Zweifel. Wenn Sie sagen, dass mit [[]] das einzelne Element in der Liste zurückgegeben wird, meinen Sie einen Wert aus der Spalte? Weil ich möchte die gesamte Spalte zum Plotten erfassen. Es tut mir leid wegen meiner Verwirrung. Danke vielmals! –

+0

Gut zu wissen, dass es Ihnen hilft. Das einzelne Element in der Liste, also könnte ein Wert, ein Vektor oder eine andere Struktur in der Liste gespeichert sein. In diesem Fall wird es die gesamte Spalte sein. Sie können Zugriff auf einzelne Werte erhalten durch '[[" heigh "]] [n]' – Geovany

+0

Oh, ich habe es Geovany! Vielen Dank für Ihre Hilfe und Erklärung! :) –