在R中将列表转换为整数或双精度数

19
我有一个包含大约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" ...

仅显示前几行。


3
尝试使用 as.numeric(y[[1]]) - Joshua Ulrich
2个回答

33

查看?unlist:

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

[[2]]
[1] "2"

[[3]]
[1] "3"


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

> y
[1] 1 2 3

如果这不能解决你的问题,请具体说明你想要做什么。


编辑: 显然,这更简单:

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

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


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

> y
[1] 1 2 3

1
很好,使用as.numeric()的unlist完美地运行了。谢谢! - Thomas
关于编辑:那不是一个字符列表。那是一个只有一个元素的列表;该元素恰好是一个向量。 - Dirk Eddelbuettel
@Dirk 我知道,但这是由OP提供的结构。事实上,我也应该更改我的初始代码以反映字符性质。- 我现在已经做到了。 - Joris Meys

1
尝试一下 - 结合 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
> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接