【问题标题】:Read Columnwise Matrix in R读取 R 中的列矩阵
【发布时间】:2014-01-10 09:28:01
【问题描述】:

我花了很多时间尝试,但不知何故没有任何效果 - 我想这对于高级 R 用户来说很容易。 我得到了一个数据格式,其中每个元素都按行出现。首先是字符串形式的标签,后跟 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]

我希望你们中的某个人可以帮助我,在此先感谢并致以最诚挚的问候。

【问题讨论】:

  • 您的问题表述不当:它与按列读取数据无关,不清楚您的问题是关于标签还是关于将数据传递给tsne,但这些都不是“为高级R"

标签: r matrix dimension-reduction


【解决方案1】:
data <- read.table("File.txt", header=False, row.names=1)
dlabels <- data[,1]

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

之后你对标签的处理完全取决于你,因为你的问题并不清楚你想用这些实现什么

【讨论】:

    【解决方案2】:

    像以前一样使用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(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
    

    【讨论】:

      【解决方案3】:

      试试下面的命令:

      cbind(Labels, tsne)
      

      【讨论】:

        猜你喜欢
        • 2018-09-25
        • 1970-01-01
        • 2020-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-11
        相关资源
        最近更新 更多