2017-08-06 57 views
0

我目前有:轉換圖像的所有功能,以行向量

arr<-array(1:3, c(2,4,6)) 
dim(arr) 
#[1] 2 4 6 
mg <-data.frame(arr) 
dim(mg) 
#[1] 2 24 
dim(mg2) 
#[1] 2 24 
dim(mg2) 
#[1] 2 24 

而且我想,結果行向量: 1 * 48

我試着使用:

as.vector(t(mg2)) 

但是結果不乘以2 * 24。

我如何得到結果?

+1

我不清楚你想要什麼(mg2缺失)。但是如果你想從你的數組中得到一個向量(長度= 48),使用c(arr)。 –

回答

1

到陣列變換爲矢量可以使用任何以下的那些的:

> c(arr) 
    > as.vector(arr) 
    > as.matrix(arr) 
    > t(as.matrix(arr)) 

前兩個碼產生一個列向量,而最後兩個產生的暗淡48 * 1,1 *矩陣48。

如果您首先將其設置爲數據框,請記住數組的維數:2行。因此你的數據幀必須有兩行。這就是爲什麼它給你2 * 24。但是,從這裏你仍然可以把它變成一個矢量。 代碼as.vector(t(mg))將給出一個向量,但這些值將在一行中而不是在一列中讀取。因此,對於上面的例子,結果將是1 3 2 1 3 2...而不是1 2 3 1 2 3 ...。您可以通過在mg上執行雙重轉置來解決此問題。即as.vector(t(t(mg)))c(as.matrix(mg))