我必须将一堆.xlsx
个文件读入R,我使用readxl::read_excel()
。这些文件中的每一个都没有为第一列提供变量名称。由于文件很多,我不想手动更改。
为了正确处理数据,必须为这些第一列命名。最后,我想编写一个函数,我可以为这些.xlsx
文件中的每一个调用(例如使用purrr:map
),在这个函数中,我希望得到一个管道作为解决方案。 / p>
不幸的是,dplyr::rename(df, timeseries = ``)
会引发以下错误:
错误:尝试使用零长度变量名称
使用列索引(dplyr::rename(df, timeseries = 1)
)也不起作用:
错误:
rename()
的参数必须是不带引号的变量名。 参数timeseries
不是。
如何通过names(df)[1] <- "timeseries"
?
答案 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])