根据R中数据框中的现有行分配标题

use*_*363 47 r names dataframe

转换数据帧后,我想根据现有行为列分配头/名称.我的标题目前是:

row.names   X2  X3  X4  X5  X6  X7  X8  X9  ...
Run Code Online (Sandbox Code Playgroud)

我想摆脱它并使用以下行作为列标题(因为我有很多,所以不必输入它们).

我唯一的解决方案是导出和重新加载数据(header = T).

小智 64

这里的关键是首先取消行.

colnames(DF) <- as.character(unlist(DF[1,]))
DF = DF[-1, ]
Run Code Online (Sandbox Code Playgroud)


Ric*_*mos 56

试试这个:

colnames(DF) = DF[1, ] # the first row will be the header
DF = DF[-1, ]          # removing the first row.
Run Code Online (Sandbox Code Playgroud)

但是,请查看数据是否已正确读取.如果data.frame有数字变量但第一行是字符,则所有数据都被读作字符.为避免此问题,最好保存数据并按照建议使用header = TRUE再次读取.


Laz*_*ton 5

janitor最干净的方法是使用专门为此目的而构建的包的函数。

janitor::row_to_names(DF,1)
Run Code Online (Sandbox Code Playgroud)

如果您想使用第一行以外的任何其他行,请将其传递到第二个参数中。