2017-07-24 132 views
1

我的数据框有第一列因子,其他所有列都是数字。如何使用矩阵作为R中的变量创建data.frame?

 Origin spectrum_740.0 spectrum_741.0 spectrum_742.0 etc.... 
1  Warthog  0.6516295  0.6520196  0.6523843 
2  Tiger  0.4184067  0.4183569  0.4183805 
3 Sperm whale  0.9028763  0.9031688  0.9034069 

我想数据帧转换为两个变量,一个矢量(第一列)和一个矩阵(所有数值列),这样我可以做在矩阵计算,例如施加msc来自pls包。基本上,我希望数据框像来自plsgasoline数据集,它有一个变量作为数值向量,第二个变量称为NIR作为具有401列的矩阵。

或者,如果您有任何建议将计算应用于数字数据,同时保持Origin列连接,那也可以工作,但是我所看到的所有例子都使用gasoline或类似格式的数据框来进行计算近红外矩阵。

谢谢!

+1

打开“籍贯”一栏的数字矩阵的rownames –

+0

的可能的复制[右办法data.frame转换为数值矩阵,当DF还包含字符串?](https://stackoverflow.com /问题/ 16518428 /右通到转换数据帧到一个数字矩阵时-DF-还-包含-〜应变) – Ale

回答

0
M = as.matrix(df[,-1]) 
row.names(M) = df[,1] 
M 
      spectrum_740.0 spectrum_741.0 spectrum_742.0 
Warthog   0.6516295  0.6520196  0.6523843 
Tiger   0.4184067  0.4183569  0.4183805 
Sperm_whale  0.9028763  0.9031688  0.9034069