选择任何行作为数据框中标题行的最有效方法是什么?

时间:2015-07-27 07:34:17

标签: r dataframe subset

我的数据框有561列,大约7300行。现在的问题是我无法删除将V1 ... V561作为变量名称的第一个标题行,而是将其切换到包含实际变量名称的下面的行。我尝试了很多技巧,因为我已经在这里经历了一些堆栈帖子,但它们似乎都没有在我的情况下工作。我甚至试过colnames(df) <- lapply(df[1,], as.character,但它似乎并没有起作用。另外,我可以使用另一个替代方法,name()函数,但我不知道如何将它用于我的目的。

我只想说我有两个数据框,一个包含一列561个单元格,这些单元格将被转换为第二个数据框的变量名,其中V1 ... V561作为变量名。明白了吗?我需要从数据帧1中替换561个单元格的那一列,将它们转换到第二个数据帧的顶部,这样我就可以得到实际的变量名。有人告诉我使用names()函数,但由于我没有真正使用过这个函数,所以我对确切的语法并不清楚。

修改

这是一种更好的方式来描述需要做什么。

所以这是df1,它包含我需要放在df2第一行的单列。

df1

x
These
are
the
variables

df2

x    y    z   x1
0    1    2   3
1    2    3   4
2    3    4   5

必须转变为

df2
These    are    the   variables
0        1      2     3
1        2      3     4
2        3      4     5

1 个答案:

答案 0 :(得分:2)

如果df1是您要重命名的数据,df2有一行名为row,其中包含您想要的名称,请尝试

names(df1) <- sapply(df2[row,], as.character)

as.character因为字符串可能是因素。

修改

刚刚注意到你说名字在一列中,所以如果名字的列是cols

names(df1) <- as.character(df2$cols)