2014-01-10 65 views
0

我已經花了很多時間嘗試,但沒什麼效果 - 我猜這對於高級R用戶來說很容易。 我得到一個數據格式,其中每個元素線性發生。首先,標籤作爲字符串,然後1000個數字功能,所有splited與空白:閱讀R中的Columnwise Matrix

"label1" 1 0 1 0 0 0 ... 
"label2" 0 0 0 0 1 0 ... 
"label2" 0 0 1 0 1 0 ... 
"label2" 1 1 1 1 0 0 ... 
... 

我的問題讀取矩陣(第一行或總是第一列)時就是標籤。我想將這個矩陣應用於tsne(降維),但標籤會導致問題。 所以我需要矩陣沒有標籤,但我想稍後存儲標籤,以便我可以用他們的新尺寸打印它們。 我走到這一步,是以下(而僞代碼):

Data <- read.table("File.txt", header=False, row.names=1) 
Labels <- Data[1] # I somehow need the labels 
Data[1] <- NULL # this should remove the first row (labels ?) 
tsne = tsne(Data, initial_config = NULL, k = 2, initial_dims = 30,...)# function that reduces dimension 

在這裏,我需要的東西,每個標籤togehter打印新2維矩陣, 如label[x] + tsne[xDimension] + tsne[yDimension]

我希望的人你可以幫助我,在此先感謝和最誠摯的問候。

+0

你的問題制定糟糕,它無關讀取數據縱列,目前尚不清楚,如果你的問題是關於標籤或約將數據傳遞給'tsne',但沒有說是「爲預研「 –

回答

1
data <- read.table("File.txt", header=False, row.names=1) 
dlabels <- data[,1] 

res = tsne(as.matrix(data[,-1]), ...) 

你用標籤做的事後完全取決於你,因爲它不是從你的問題清楚自己想要與那些

0

才達到試試下面的命令是什麼:

​​
1

閱讀如前所述使用read.table的數據。

data_as_data.frame <- read.table(
    text = '"label1" 1 0 1 0 0 0 
"label2" 0 0 0 0 1 0 
"label2" 0 0 1 0 1 0 
"label2" 1 1 1 1 0 0' 
) 

從除第一列以外的所有列中創建一個矩陣。

data_as_a_matrix <- as.matrix(data_as_data.frame[, -1]) 

在矩陣中使用第一列作爲rownames。

rownames(data_as_a_matrix) <- data_as_data.frame[, 1] 
data_as_a_matrix 
##  V2 V3 V4 V5 V6 V7 
## label1 1 0 1 0 0 0 
## label2 0 0 0 0 1 0 
## label2 0 0 1 0 1 0 
## label2 1 1 1 1 0 0