我花了很多时间尝试但不知何故没有效果 - 我想这对高级R用户来说很容易。 我得到了一个Dataformat,其中每个元素都按行出现。首先将标签作为String后跟1000个数字特征,所有这些特征都用空格分割:
"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
在这里,我需要用每个标签打印新的二维矩阵,
例如label[x] + tsne[xDimension] + tsne[yDimension]
我希望你们中的某些人能够帮助我,先谢谢你们,并提出最好的问候。
答案 0 :(得分:1)
data <- read.table("File.txt", header=False, row.names=1)
dlabels <- data[,1]
res = tsne(as.matrix(data[,-1]), ...)
之后你对标签的处理完全取决于你,因为从你的问题中你不清楚你想要与那些人一起做什么
答案 1 :(得分: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
答案 2 :(得分:0)
尝试以下命令:
cbind(Labels, tsne)