我正在尝试使用传递给 的函数重命名多个 df 的列purrr::map
,但显然我做错了,因为我收到错误。有人能告诉我怎么做吗?
# Create new df rows
newrow1 <- data.frame(t(c("a", rep("", 6))))
newrow2 <- data.frame(t(c("b", rep("", 6))))
newrow3 <- data.frame(t(c("c", rep("", 6))))
newrow4 <- data.frame(t(c("d", rep("", 6))))
newrow5 <- data.frame(t(c("e", rep("", 6))))
newrow6 <- data.frame(t(c("f", rep("", 6))))
newrow7 <- data.frame(t(c("g", rep("", 6))))
newrow8 <- data.frame(t(c("h", rep("", 6))))
newrow9 <- data.frame(t(c("i", rep("", 6))))
# Function to rename dfs
changenames <- function(x) {
names(x) <- c("row","n_1","n_2","n_3","pct_1","pct_2","pct_3")
return(x)
}
df_names <- paste0("newrow", 1:9)
purrr::map(df_names, changenames)
你犯了一个错误,因为你向函数传递了一个字符串
changenames
而不是数据框。你可以使用如果你想修改工作区中的 data.frames,你可以使用:
请注意,对于此任务,您实际上不需要自定义函数。该函数
setNames
可以解决您的问题:使用基础 R,
lapply()
尝试setNames()
: