将列表转换为r中的数字矩阵

时间:2014-04-08 16:43:29

标签: r

我似乎无法将列表转换为矩阵。我使用:

加载.csv文件
dat = read.csv("games.csv", header = TRUE)

> typeof(dat)
[1] "list"

但是当我尝试使用:

将其转换为数字矩阵时
  

games = data.matrix(dat)

由于某种原因,条目的值都已更改。有什么问题?

2 个答案:

答案 0 :(得分:2)

虽然纳撒尼尔的解决方案对你有用,但我认为重要的是要指出你可能需要调整你对正在发生的事情的看法。

typeof(dat)可能是list,但classdata.frame

这可能有助于说明差异:

# typeof() & class() of `pts` is `list`
# whereas typeof() `dat` in your example is `list` but
# class() of `dat` in your example is a `data.frame`

pts <- list(x = cars[,1], y = cars[,2])

as.matrix(pts)
##   [,1]      
## x Numeric,50
#3 y Numeric,50

head(as.matrix(data.frame(pts)))
##      x  y
## [1,] 4  2
## [2,] 4 10
## [3,] 7  4
## [4,] 7 22
## [5,] 8 16
## [6,] 9 10

这些是来自'as.matrix()`函数的两个基本不同的结果。

如果您在read.csv之外的其他背景下尝试此操作,请确保您不会对结果感到失望。

答案 1 :(得分:1)

如果没有提供任何其他信息,也许您可​​以尝试:

games <- as.matrix(dat)