我试图创建一个密度直方图,我有错误:参数' x'必须是数字。我尝试使用(as.numeric(输入$ d))而不是d,但得到了相同的错误。有谁知道如何解决这个问题?
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")
})
})
非常感谢你! :)
答案 0 :(得分:0)
我认为问题出在d <- density(trees3["height"])
。 density
函数的第一个参数是x
,它应该是数字。您使用[]
代替[[]]
。 []
返回元素列表,[[]]
返回列表中的单个元素。所以只需尝试更改
d <- density(trees3["height"])
与
d <- density(trees3[["height"]])
。
此外,我认为您的代码中不需要else
。但是,如果您需要使用if...else
语句,请确保:
重要的是要注意 else 必须与if语句的结束括号位于同一行。 http://www.programiz.com/r-programming/if-else-statement