0

我正在尝试获取数据框中数字列的密度并将它们分配给新变量。

我正在使用这个功能,但是当我使用它时,它什么也没发生。我有点迷路了……你能帮帮我吗?

densities <- function(data.input, dense){
      for(i in 1:ncol(data.input)){
       if(is.numeric(data.input[,i]) == TRUE){
        dense <- density(data.input[, i])
        names(dense) <- paste(c("density"), colnames(data.input)[i], names(data.input), sep = ".")
        return(dense) ## I don't know how to make it return the created variable and have it in the environment
       }else{
         next
       }
       }
      }

对不起,如果答案太明显

4

1 回答 1

2

这对你有用吗?

results <- apply(data.input, 2, density)

我刚刚注意到,也许你有一些非数字列,这应该在这种情况下工作:

results <- apply(data.input[sapply(data.input, is.numeric)], 2, density)
于 2014-12-02T22:41:04.763 回答