【问题标题】:Giving variable name to row.names in csv file将变量名称赋予 csv 文件中的 row.names
【发布时间】:2012-02-07 13:05:29
【问题描述】:

我有一个看起来像这样的数据框

         z
          2
          3
          4
          5
          6
          7
      > 

使用 write.csv(z,"a.csv") 将此数据帧存储为 csv 格式后,我得到以下信息 结果

            z
         1  2
         2  3   
         3  4
         4  5
         5  6
         6  7

是否可以使用 R 将包含 1、2、3、4、5、6 的列的变量名称赋给 csv 文件

【问题讨论】:

  • 我不这么认为。一个 hacky 方法是将行编号放入它自己的名为 z$rownum 的列中,或者你想要它调用的任何列,然后在你的 write.csv() 命令中设置 "..., row.names=F)" .不过很老套。
  • @nzcoops 我会称之为特色,而不是 hacky。 :P
  • 我怀疑您真正想要的是从您的 csv 文件中删除行名称(无论如何,我从未在导出的文件中找到它们的用途)。您可以使用write.csv(*, row.names=FALSE) 执行此操作。

标签: r


【解决方案1】:

不确定我是否理解你的问题,但如果你试试这个

z <- data.frame( z = 2:7 )
rn <- c( "a", "b", "c", "d", "e", "f" )
rownames( z ) <- rn
> z
  z
a 2
b 3
c 4
d 5
e 6
f 7 

你离你想要的更近了吗?

【讨论】:

  • 基本上我想给 row.names() 变量名称,即 csv 文件中的 1,2,3.. 默认为空
  • 抱歉,我弄错了。但是为此,nzcoops 的方法应该可以正常工作吗?或者如果没有,maqxybe 你可以解释一下你的目标。
  • @nzcoops 方法很好,但是没有存储在名为 z$rownum 的新变量中的任何方法
【解决方案2】:

write.csv 不允许您更改许多参数,包括col.names

 for (argname in c("append", "col.names", "sep", "dec", "qmethod")) if (!is.null(Call[[argname]])) 
        warning(gettextf("attempt to set '%s' ignored", argname), 
            domain = NA)

write.table 允许您更改col.names,但仅限于数据中的列数。 ?write.table 对 CSV 文件有以下建议:

默认情况下,行名列没有列名。如果 col.names = NA 和 row.names = TRUE 添加一个空白列名, 这是用于电子表格读取 CSV 文件的约定。

【讨论】:

    【解决方案3】:

    您可以执行df$Record_ID &lt;- seq.int(nrow(df)) 之类的操作,然后在您的 write.csv 语句中设置 row.names=FALSE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多