Список к целому или двойному в R - PullRequest
14 голосов
/ 28 сентября 2010

У меня есть список из 1000 целых чисел. Мне нужно уметь делать некоторые математические вычисления, но они застряли в форме списка или символа. Как я могу их поменять, чтобы они были полезны?

образец данных:

> y [[1]] 
  [1] "7" "3" "1" "6" "7" "1" "7" "6" "5" "3" "1" "3" "3" "0" "6" "2" "4" "9" 
  [19] "1" "9" "2" "2" "5" "1" "1" "9" "6" "7" "4" "4" "2" "6" "5" "7" "4" "7"     
  [37] "4" "2" "3" "5" "5" "3" "4" "9" "1" "9" "4" "9" "3" "4" "9" "6" "9" "8" 
  [55] "3" "5" "2" "0" "3" "1" "2" "7" "7" "4" "5" "0" "6" "3" "2" "6" "2" "3" 
  [73] "9" "5" "7" "8" "3" "1" "8" "0" "1" "6" "9" "8" "4" "8" "0" "1" "8" "6" ...

Только первая пара строк.

Ответы [ 2 ]

24 голосов
/ 28 сентября 2010

См.? Unlist:

> x
[[1]]
[1] "1"

[[2]]
[1] "2"

[[3]]
[1] "3"


> y <- as.numeric(unlist(x))

> y
[1] 1 2 3

Если это не решит вашу проблему, укажите, что именно вы хотите сделать.


edit: Видимо, еще проще:

> x <- list(as.character(1:3))

> x
[[1]]
[1] "1" "2" "3"


> y <-as.numeric(x[[1]])

> y
[1] 1 2 3
1 голос
/ 28 сентября 2010

Попробуйте это - объединение as.numeric() и rbind():

> foo <- list("2", "4", "7")
> foo
[[1]]
[1] "2"

[[2]]
[1] "4"

[[3]]
[1] "7"

> bar <- do.call(rbind, lapply(foo, as.numeric))
> bar
     [,1]
[1,]    2
[2,]    4
[3,]    7
> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...