Почему rbind преобразует список числовых элементов в символьную матрицу? - PullRequest
3 голосов
/ 01 марта 2012

Почему rbind преобразует мой список числовых элементов в символ?

> class(mymatrix.list)
[1] "list"
> class(mymatrix.list[[1]])
[1] "numeric"
> mymatrix.results = do.call(rbind, mymatrix.list)
> class(mymatrix.results)
[1] "matrix"
> class(mymatrix.results[1])
[1] "character"

Ответы [ 2 ]

4 голосов
/ 01 марта 2012

Возможно, потому что один из элементов в вашем списке содержит символы?

mymatrix.list <- list()
for(i in 1:10){
  mymatrix.list[[i]] <- rnorm(26)
}

class(mymatrix.list)
# [1] "list"
class(mymatrix.list[[1]])
# [1] "numeric"
mymatrix <- do.call(rbind, mymatrix.list)
class(mymatrix)
# [1] "matrix"
class(mymatrix[1])
# [1] "numeric"

## Add a character vector to your list
mymatrix.list[[11]] <- LETTERS
mymatrix <- do.call(rbind, mymatrix.list)
class(mymatrix)
# [1] "matrix"
class(mymatrix[1])
# [1] "character"
1 голос
/ 01 марта 2012

первый аргумент rbind равен ..., а файл справки гласит:

Arguments:

     ...: vectors or matrices.  These can be given as named arguments.
          Other R objects will be coerced as appropriate: see sections
          ‘Details’ and ‘Value’.  (For the ‘"data.frame"’ method of
          ‘cbind’ these can be further arguments to ‘data.frame’ such
          as ‘stringsAsFactors’.)

, и преобразование символов вероятно из-за одного из ваших списков, содержащих символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...