使用dplyr

时间:2017-01-25 13:06:53

标签: r dplyr rename

我必须将一堆.xlsx个文件读入R,我使用readxl::read_excel()。这些文件中的每一个都没有为第一列提供变量名称。由于文件很多,我不想手动更改。

为了正确处理数据,必须为这些第一列命名。最后,我想编写一个函数,我可以为这些.xlsx文件中的每一个调用(例如使用purrr:map),在这个函数中,我希望得到一个管道作为解决方案。 / p>

不幸的是,dplyr::rename(df, timeseries = ``)会引发以下错误:

  

错误:尝试使用零长度变量名称

使用列索引(dplyr::rename(df, timeseries = 1))也不起作用:

  

错误:rename()的参数必须是不带引号的变量名。       参数timeseries不是。

如何通过names(df)[1] <- "timeseries"

来避免中断管道以重命名变量

2 个答案:

答案 0 :(得分:3)

这可以通过以下方式使用dplyr::select()来完成:

select(df, timeseries = 1, everything())

显然,dplyr::select()可以处理列索引,这允许这个解决方案。

如果您知道dplyr:rename()无法实现这一目的的任何特殊原因,请发表评论!

答案 1 :(得分:1)

如果您想使用rename和列索引(在本例中为1),您可以

rename_(df, timeseries = names(df)[1])

链接时,请使用点:

df %>% ... %>% rename_(timeseries = names(.)[1])