當前位置:首頁 » 網路資訊 » r怎樣把矩陣轉成數據
擴展閱讀
哪個app可以學asm設備 2024-05-18 14:32:27
文件格式錯了可以修改嗎 2024-05-18 14:30:56

r怎樣把矩陣轉成數據

發布時間: 2023-03-31 12:31:31

1. 求助:R語言 有個字元型矩陣,怎麼樣轉換成數值型的矩陣

可螞冊以用as.numeric的
假設悶差宏你慶鬧的矩陣是a
b=matrix(as.numeric(a),nrow=nrow(a))
這樣就行了

2. R語言-數組到矩陣的轉換

R語言-數組到矩陣的轉換
1、問題:
有一個很大的三維數組,需要轉換為一個矩陣,是否能在R中用循環語句或者其他方式實現?

三維數組(3, 2, 3)類似下面形式:
, , 1

[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6

, , 2

[,1] [,2]
[1,] 7 10
[2,] 8 11
[3,] 9 12

, , 3

[,1] [,2]
[1,] 13 16
[2,] 14 17
[3,] 15 18

希望轉換後的矩陣(6, 3)如下:
1 7 13
4 10 16
2 8 14
5 11 17
3 9 15
6 12 18
2、解答:
基於問題數據的特點,可直毀明接用行組合就可以,避免使用循環計算,在進行大數據處理時可顯著提高處理效率。
可以看到最終數據呈橫向擴展,而與第3維數據的個數無關。
1、假定有數據:
> a <- array(1:18, dim=c(3,2,3))
> a
, , 1

[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6

, , 2

[,1] [,2]
[1,] 7 10
[2,] 8 11
[3,] 9 12

, , 3

[,1] [,2]
[1,] 13 16
[2,] 14 17
[3,] 15 18
2、合成寬冊後的矩陣為:
>b<- rbind(a[1,,],a[2,,],a[3,,])
一句話搞定。
3、查看結果
> b
[,1] [,2] [,3]
[1,] 1 7 13
[2,] 4 10 16
[3,] 2 8 14
[4,] 5 11 17
[5,] 3 9 15
[6,] 6 12 18
4、使用更多數據測試:
> a <- array(1:24, dim=c(3,2,4))
> a
, , 1

[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6

, , 2

[,1] [,2]
[1,] 7 10
[2,] 8 11
[3,] 9 12

, , 3

[,1] [,2]
[1,] 13 16
[2,] 14 17
[3,] 15 18

, , 4

[,1] [,2]
[1,] 19 22
[2,] 20 23
[3,] 21 24

> b<-rbind(a[1,,],a[2,,],a[3,,])
> b
[,1] [,2] [,3] [,4]
[1,] 1 7 13 19
[2,] 4 10 16 22
[3,] 2 8 14 20
[4,] 5 11 17 23
[5,] 3 9 15 21
[6,] 6 12 18 24
3、另外的方法
1、apply()
apply(x, 3, t)
apply()函數,可將一個慎余宏任意函數「應用」到矩陣、數組、數據框的任何維度上。apply函數的使用格式為:
apply(x, MARGIN, FUN, ...)
其中,x為數據對象,MARGIN是維度的下標,FUN是由你指定的函數,而...則包括了任何想傳遞給FUN的參數。在矩陣或數據框中,MARGIN=1表示行,MARGIN=2表示列。
2、aperm()
(1)aperm() 函數,Transpose an array by permuting its dimensions and optionally resizingit.
Transpose變換順序
permute 序列改變,重新排列一個數組
該函數意即改變數組的維度順序,維度1,2,3按不同順序進行變換。
(2)array()函數,用法array(data = NA, dim = length(data), dimnames = NULL)
array(aperm(x, c(2,1,3)), c(6,3))
將數組x維度改變(1->2,2->1,3->3)後:
aperm(x, c(2,1,3))
再變換成新的數組:
array(aperm(x, c(2,1,3)), c(6,3))
注意:
其實這樣做有點多餘,可直接應用數組變換:
array(x, c(6,3))
結果與上述方法結果一樣。
如果是三維數量是4,則公式為:
array(x,c(6,4))
依此類推。

3. R語言,怎麼樣把下面矩陣第一列的行名變成數據,上空格處加個列名「ID」

假如已經將上面的數據讀入了R中的清橘data.frame中,並保存為df變數
library(stringr)
df$ID <答螞團物早- row.names(df)
df$ID <- str_extract(df$ID, '\\d+')##提取數字

4. 如何將r語言中矩陣轉成c 中數組

首先,transf 這函數不能實現轉置功能 a[i][j]和a[j][i]對換,鋒肢襲按照循環,後面這兩個數還會再對換一次,等於沒換 另飢晌外 printf("The new Matrix is:\n"銀兄); for(i=0;i

5. 說說R語言的轉置

在群里看到了一個問題,他用R語言的轉置函數 t() 對下面形式的數據進行了轉數槐置

轉置之後的數據結構如下

他發現轉置之後搜虛多了一行,也就是有了geneid這一行,和他預期的不符合。按照預期,geneid這一行應該是成為列名,而不是作為輸出的第一行。那麼,為什麼會出現這個情況呢世畢燃?這就需要從 t() 這個函數說起。

使用 ?t ,你會得到關於這個函數的函數說明。在函數的Detials部分中,有這樣一段

即,數據框會先用 as.matrix() 轉成矩陣格式,然後再引用 t() ,最終你對一個數據框使用 t() 函數時,你會得到一個矩陣,而非原先的data.frame.

舉個例子:

因為矩陣要求存放的內容是同一種數據類型,對於輸入的數據框而言,一般都會有字元串,數值這些,那麼最終都會被轉成字元串。

對於最開始的問題而言,因為原先的數據框的第一列是字元串,那麼自然而然會把所有的數據都變成字元串,然後把第一列變成第一行。而如果要實現他真正的目的,需要先將第第一行變成行名,然後刪掉第一行在轉置,也就是

其結果就是先保證原來的數據框裡面都是數值數據,而不是讓第一列充當行名。

延伸一下,對於超過2維的數組,我們要用到 aperm 函數才能對數據進行轉置。當然,超過二維的轉置,你甚至都無法直觀感受到這是一個什麼過程。

6. R語言將字元串矩陣轉化為數值型矩陣

這是原始數據的格式,當運行完下面的命令的時候,結歲脊果如下圖

x=read.table("C:/Users/Administrator/Desktop/s1.txt")

x=as.matrix(x)

x

顯然x是個字元串矩陣,如果我要刪去x的第一列,

y=x[,-1]

y

結果如圖

顯然,y還是一個字元串矩陣,,如乎橘滲何將字元串矩陣轉化為數值矩陣呢?使用apply()函數

y=apply(y,2,as.numeric)

apply()函數裡面的第2個值,如果為1,則修改的為行,如果取2則表伍世示修改的為列

7. r語言矩陣轉為圖表

r語言矩跡漏陣轉為圖基悶表以讀入txt格式的數據為例子。第一步打開R軟體包,讀入數據。第二部使用轉換矩陣命令as.matrix(),使讀入的搏州彎數據變成矩陣格式。第三部驗證是否轉換成功,命令is.matrix()返回TRUE表示轉換成功。

8. R語言如何將數據框轉化為矩陣

第一步:導入數據

  data1<-read.table('clipboard',header=T)  (其中,將EXCEL表格中的數據先復制,然後進行導入,即可),

第二步:將鍵螞罩數據框轉化為矩陣(A)

A<-as.matrix(data1)  

第三步:將數據框的第一行的標題去掉

 colnames(A)<-NULL

第四步:求矩陣A的稿鬧轉置陣,設轉置陣為A1

A1<-t(A)

第五物塌部:計算矩陣A與其轉置陣A1相乘

 H1<-A%*%A1

9. R語言,怎麼把有字元型和數字型兩種類型數據的數據框轉化為矩陣

as.matrix(data)就行了。不過矩陣喚緩裡面所有元配鏈肢素必須是同樣類型的,也就是說按你的要求做了之後矩陣里所有元素都是字元培世串。

10. R語言數據結構-數據框&矩陣&列表

R語言數據結構主要有以下四種:

四種數據結構,重點掌握 向量 數據框

判斷數據結構的函數: class()

向量的詳細講解在上一篇文章,以下主要講數據框,矩陣,列表:

以下大部分操作使用的數據框為df

幾個重要的函數:查看數據框的行數和列數,行名和列名;以及單獨查行的數量,列的數量

數據框取子集有幾種方法 : $ 符號,坐標,名字,邏輯值

在 [,] 里,行在前面(左邊),列在後面(右邊),行與列用逗號 , 隔開: [行,列]

中括弧里的逗號,表示維度的分割

數據框按照邏輯值取子集,TRUE對應的行/列留下,FALSE對應的行/列去掉。

修改第二列的列名,就是修改列名這個向量的第二個元素

https://blog.csdn.net/weixin_39718006/article/details/110516670

後續的筆記會有詳細介紹

矩陣不能用 $ 符號取子集

t():轉置函數,行與列的互換悄帆

as.data.frame():轉換,把矩陣變為數據框 ,用as.matrix()函數也能把數據框變為矩陣

聚類,相似的行,相似的列會聚在一起。熱圖自動聚類,行和列的相對位置發生了變化,只是列與列,行與行之間的變化規律。

![熱圖自動聚類]]( https://upload-images.jianshu.io/upload_images/17511166-f6e2432a04cffbbe.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )

熱圖默認聚類,修改參數,不讓聚類,熱圖與表達矩陣對應。

默認的設置不符合自己的預期,可以子啊作者允許的范圍內定義。

查看函數幫助文檔,參考修改,達到自己的要求。

列念山表沒有列名和行名,只有元素的名字。列表可以由數據框,矩陣,向量,單獨的一個數字都可以組成。

列表沒有行和列的概念,只有元素,取子集的兩種方式: [[]] , $ ,

$ 有兩個作用:數據框取子集和列表取子集。在矩陣和向量里不能用 $ 。

用 class() 函數更能具體說明問題, 判斷數據結構和數據類型

以上內容是聽 生信技能樹 小潔老師的 R語言線上課 ,根據自己的仔運中理解記錄下來,小潔老師授課非常細心,對不同水平的同學都照顧到,並且補充很多技巧以及注意事項。

認識R語言的四種數據結構,小潔老師強調重點掌握向量和數據框,在實戰中遇到很多數據結構都是數據框,表達矩陣可以轉化為數據框,數據框的一列可以看做是一個向量。小潔老師把實戰中會需要的操作融入到練習題,在實戰中能聯想起小潔老師講過的知識點。