如何在dplyr中自动填充列名?

时间:2016-03-10 02:10:53

标签: r autocomplete dplyr

我知道我可以Promise.all获取数据框的列。但有没有更方便的方法在Rstudio中使用names(df)重命名?

早些时候:

dplyr

现在:

names(df)=c("anew","bnew","cnew")

library(dplyr) rename(df, aold = anew, bold = bnew, cold= cnew) 因为我必须知道/输入旧列名和新列名而使其变得更加困难。

我可以在dplyr工具链中看到有关自动完成列名称的某些对话。但我似乎无法使它工作,我有最新的RStudio。

https://plus.google.com/+SharonMachlis/posts/FHknZcbAdLE

3 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情(您不需要使用dplyr自动转换名称)。只需将modify_names函数替换为要应用于名称的任何转换。

> modify_names <- function(any_string) {
+    return(paste0(any_string, "-new"))
+ }
>


> df <- data.frame(c(0, 1, 2), c(3, 4, 5))
> names(df) <- c("a", "b")
> df
  a b
1 0 3
2 1 4
3 2 5


> names(df) <- modify_names(names(df))
> df
  a-new b-new
1     0     3
2     1     4
3     2     5

答案 1 :(得分:0)

使用std::deque<int> myints; size_type mySize = myints.size(); 没有错。 dplyr不是R中的全部和最终数据操作。

那就是说,如果你想在dplyr管道中包含它,这里是如何做到的:

names(*) <- new_value

这是有效的,因为(几乎)R中的所有内容都是函数,特别是分配新名称实际上是对df %>% `names<-`(c("a_new", "b_new", "c_new")) 函数的调用。

答案 2 :(得分:0)

最近我遇到了同样的问题,并找到了RStudio这篇文章:https://support.rstudio.com/hc/en-us/articles/205273297-Code-Completion

在文章之后,要在RStudio中使用dplyr自动完成列名,您必须使用magrittr的%>%运算符(管道):

library(dplyr)
df %>% rename(aold = anew, bold = bnew, cold= cnew) #Select the variable (old) name after typing the initials (3) + tab

您可以在文章中找到直观的示例,并在以下位置操纵补全延迟(以减少输入)和其他补全选项:RStudio>工具>全局选项...>代码>补全>补全延迟。