【发布时间】:2016-08-22 19:46:05
【问题描述】:
如何在R data.frame 对象中设置行索引名称?
我尝试在 stackoverflow 上寻找答案,但我什至不知道如何搜索它? https://stackoverflow.com/search?q=set+row+index+name+dataframe+R
这是一种解释,但他们正在将其转换为矩阵? How do I name the "row names" column in r
> dimnames(DF_c) = c("sample","cluster")
Error in `dimnames<-.data.frame`(`*tmp*`, value = c("sample", "cluster" :
invalid 'dimnames' given for data frame
在 Python Pandas 中,我会简单地执行 DF_c.index.name = "samples",但我不知道如何在 R 中执行此操作。我注意到当我保存它write.table(DF_c, "output.tsv", sep="\t") 时,它会将我的列标签作为行名,但我不能做类似colnames(DF_c) = c( "samples","cluster") 的事情,因为只有一列?
# Clusters
DF_c = data.frame(last_iter$c)
rownames(DF_c) = row_labels
colnames(DF_c) = c( "cluster")
奖金:
写表输出时如何不包含"?
【问题讨论】:
-
您不能重命名行名向量。它的名字已经是
rownames并且它被存储为一个属性。您的奖金问题是重复的。做一些搜索。 -
为什么将列名移到行上?我不知道 R 中的术语。
-
我想您是在问 Excel 的行为方式。
-
我不这么认为。在 Pandas 中,当它输出数据框时,标题开头有一个选项卡,因此所有内容都排成一行。我在问如何让 R 不这样做。我以为通过命名行索引,问题就解决了。
-
是的,还请注意,您可以(而且我通常会)通过指定
row.names = FALSE在写入文件时隐藏行名。通常,当R读取一个分隔文件时,如果有一个标题行的值比其他行少一个,它将假定第一列是行名。
标签: r indexing dataframe row labels