【发布时间】:2016-09-14 14:40:53
【问题描述】:
我想用函数重命名数据框中的多个列。
数据框
nameAXX = c("car1", "car2", "car2", "car2", "car3", "car1")
brand = c("b1", "b2", "b2", "b2", "b3", "b1")
productionAXX = c(10, 10, 10, 40, 10, 5)
df = data.frame(brand, nameAXX, productionAXX)
循环本身可以工作,但如果我将它包装在一个函数中并调用它,则不会。
replaceColNamePattern <- function(df, pattern, replace){
for (name in colnames(df)){
if (regexpr(pattern, name) > 0){
names(df)[names(df)==name] <- gsub(pattern, replace, name)
}
}
}
调用函数
replaceColNamePattern(adf, "AXX", "")
不能在函数中重命名列吗?
【问题讨论】:
-
您不需要
for循环尝试使用grep即gsub("AXX", "", names(df)[grep("AXX", names(df))]) -
names(adf) <- gsub('AXX', '', names(adf)) -
你试过了吗?
-
@BertMaier 您必须将其分配给名称(df)
标签: r