1. 程式人生 > >R語言 dataframe轉化為matrix

R語言 dataframe轉化為matrix

第一次寫部落格,從今日起正式開始記錄小白成長記.

1. 問題描述

將從MATLAB中匯出的mat資料, 匯入到R中, 並將dataframe格式 轉化為 matrix格式.

mat資料
圖1 

如上圖1為MATLAB匯出的mat資料, 大小為9843*1643.

2. 解決方案

解決方案一共分為以下3個步驟.

 

  1. mat資料                轉化為      csv資料         (MATLAB中實現)
  2. R讀入csv檔案, 為dateframe型別資料;        (R中實現)
  3. dataframe資料       轉化為      matrix資料    (R中實現)

2.1  mat資料轉化為csv格式

在matlab中, 使用csvwrite函式,其中s為mat檔案,將mat檔案匯出為"ko_wt.csv"檔案.

csvwrite('ko_wt.csv',s);

2.2  R讀入csv檔案

在R中, 使用read.csv函式讀取 csv 檔案, 

read.csv(file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)

file需要給出csv檔案路徑 (win和mac路徑符號不同需注意),  其餘引數參見help(read.csv), 類似讀取資料的函式有:read.table, read.csv2, read.delim等.

具體參見: http://127.0.0.1:17814/library/utils/html/read.table.html

data1<-read.csv('d:/ko_wt.csv')  #引數預設為TRUE
data2<-read.csv('d:/ko_wt.csv',header=FALSE)

2.3  dataframe轉化為matrix

將dataframe轉化為matrix, 目前找到了2種方法,歡迎補充..

  • 使用 data.matrix 函式
y = data.metrix(data1)
  • 使用as.number函式(詳見help(as.number))
y <- apply(data1, as.numeric)

3. 待解決

將大小為9843*1643的matrix, 取任意一行存為numeric格式.