【问题标题】:Specifying row names when reading in a file读取文件时指定行名
【发布时间】:2012-10-27 15:11:30
【问题描述】:

我有一个包含行名的.txt 文件。但是,R 将行名设置为第一列。

【问题讨论】:

    标签: r csv dataframe rowname


    【解决方案1】:

    ?read.table。基本上,当您使用read.table 时,您指定一个表示列的数字:

    ##Row names in the first column
    read.table(filname.txt, row.names=1)
    

    【讨论】:

      【解决方案2】:

      如果您使用了read.table()(或其中一个,例如read.csv()),那么简单的解决方法是将调用更改为:

      read.table(file = "foo.txt", row.names = 1, ....)
      

      .... 是您需要/使用的其他参数。 row.names 参数采用数据文件的列号,从中获取行名。它不必是第一列。有关详细信息/信息,请参阅?read.table

      如果您已经在 R 中有数据并且懒得重新读取它,或者它来自另一个路由,只需设置 rownames 属性并从对象中删除第一个变量(假设 obj是你的对象)

      rownames(obj) <- obj[, 1]  ## set rownames
      obj <- obj[, -1]           ## remove the first variable
      

      【讨论】:

      • 您也可以使用基于列的切片(至少对于矩阵和数据框)。 rownames(obj) &lt;- t(obj[1]) ##get row names from first columnobj &lt;- obj[-1] ## remove first column
      • 那么,row.names 的整数是 1 索引的吗?第一列不叫 Column 0?
      • @Dr_Hope R 级别的所有向量都是 1 索引的,因此第一行是第一行,第一列是第一列。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2016-03-26
      • 1970-01-01
      • 2011-02-04
      相关资源
      最近更新 更多