我用这种方式从csv
文件读取了一个数字数据帧:
df <- read.csv(path, sep=",", row.names = 1, header=TRUE)
因此,第一行用作标题,第一列用作索引。我想做一些类似于python
函数df.values
的事情,即返回一个只有数值的矩阵。
我试过
X = matrix(df)
X = data.matrix(df)
但它们都没有返回我想要的内容,例如,我无法通过调用X[1,1]
获得第一个数值。
为了澄清,我创建了一个数据框架如下:
首先,我用创建了矩阵
X = matrix(data=c(1,2,3,4,5,6), nrow=3, ncol=2)
然后用对data.frame
df_dummy = data.frame(X, row.names = c("A","B","C"))
我用上面提到的两种方法得到的是:
> X = matrix(df_dummy)
> X[1,1]
[[1]]
[1] 1 2 3
和
> X = data.matrix(df_dummy)
> X[1,1]
[1] 1
> X
X1 X2
A 1 4
B 2 5
C 3 6
所以X
不仅仅是数字,它还有标签。
我想拥有的是我一开始建立的东西,即:
X
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
四处走走会创建一个空矩阵,并用for循环填充,但最好避免这种情况,找到更有效的方法。
谢谢你的回答,我正在努力用我在python
中的知识从头开始学习R
!
你的意思是?
data.matrix(sapply(df, as.numeric))
无列名:
unname(data.matrix(sapply(df, as.numeric)))