在我的数据中,列名的书写方式如下
D/T Temp [degCelc] Pres [hPa] SRad [W/m**2] Rain [mm] ARad [W/m**2] Moist [%] K [%] Temp1 Press1
字符串
我想将列名更改为
D/T Temp Pres SRad Rain ARad Moist K Temp1 Press1
correct_column_names <- function(dt_list){
lapply(dt_list, FUN = function(x){
colnames(x) <- gsub("[degCelc]", "", colnames(x))
colnames(x) <- gsub("[hPa]", "", colnames(x))
colnames(x) <- gsub("[W/m**2]", "", colnames(x))
colnames(x) <- gsub("[mm]", "", colnames(x))
colnames(x) <- gsub("[%]", "", colnames(x))
return(x)
})
}
型
此操作成功运行。
稍后,作为代码中的一个步骤,我选择了要处理的列
sel_col <- c('D/T', 'Temp', 'Pres', 'SRad', 'Rain', 'ARad')
型
这给了我错误:
Error in .checkTypos(e, names_x) :
Object 'Temp1' not found. Perhaps you intended Moist [%], K [%] or 2 more
型
1条答案
按热度按时间qhhrdooz1#
这就是你想要的:
字符串
问题是在
gsub("[hPa]", "", colnames(x))
中,方括号没有被转义,所以它们需要被转义(这是R中正则表达式的一个很好的指南)。所以它匹配任何“h”、“P”或“a”--不是方括号,也不是方括号前的空格:型