如何在dplyr中自动完成列名?
我知道我可以使用如何在dplyr中自动完成列名?,r,autocomplete,dplyr,R,Autocomplete,Dplyr,我知道我可以使用names(df)来获取数据帧的列。但是,在Rstudio中使用dplyr是否有更方便的重命名方法 早些时候: names(df)=c("anew","bnew","cnew") 现在 dplyr使它更加困难,因为我必须知道/键入新旧列名 我可以在dplyr工具链中看到一些关于列名自动完成的对话。但我似乎不能让它工作,我有最新的RStudio 您可以尝试类似的方法(不需要使用dplyr自动转换名称)。只需将modify_names函数替换为要应用于名称的任何转换即可 >
names(df)
来获取数据帧的列。但是,在Rstudio中使用dplyr
是否有更方便的重命名方法
早些时候:
names(df)=c("anew","bnew","cnew")
现在
dplyr
使它更加困难,因为我必须知道/键入新旧列名
我可以在dplyr
工具链中看到一些关于列名自动完成的对话。但我似乎不能让它工作,我有最新的RStudio
您可以尝试类似的方法(不需要使用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
>修改\u名称
>df名称(df)df
a b
1 0 3
2 1 4
3 2 5
>姓名(df)df
a-新的b-新的
1 0 3
2 1 4
3 2 5
您可以尝试类似的方法(不需要使用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
>修改\u名称
>df名称(df)df
a b
1 0 3
2 1 4
3 2 5
>姓名(df)df
a-新的b-新的
1 0 3
2 1 4
3 2 5
使用名称(*)%`names没有错使用名称(*)%`names没有错最近我遇到了同样的问题,发现了这篇RStudio文章:
在本文之后,要在RStudio中使用dplyr自动完成列名,必须使用magrittr的%>%运算符(管道):
您可以在文章中找到可视示例,并在:RStudio>工具>全局选项…>代码>完成>完成延迟中操作完成延迟(键入更少)和其他完成选项。最近我遇到了同样的问题,发现了这篇RStudio文章:
在本文之后,要在RStudio中使用dplyr自动完成列名,必须使用magrittr的%>%运算符(管道):
您可以在本文中找到可视示例,并在以下位置操作完成延迟(键入较少)和其他完成选项:RStudio>工具>全局选项…>代码>完成>完成延迟。问题到底是什么?你不需要知道旧名称来重命名它们吗?在第一个例子中,我不需要输入旧列名。在第二个例子中,我需要把它拼出来……你也可以这样做,例如,rename(iris,.dots=setNames(names(iris),letters[1:5])
,而不必键入旧名称。谢谢!第一个例子也很好。我只是想知道在dplyr/Rstudio中是否也有一种方法可以实现自动补全。事实上我认为我错了:)问题到底是什么?你不需要知道旧名称来重命名它们吗?在第一个例子中,我不需要输入旧列名。在第二个例子中,我需要把它拼出来……你也可以这样做,例如,rename(iris,.dots=setNames(names(iris),letters[1:5])
,而不必键入旧名称。谢谢!第一个例子也很好。我只是想知道在dplyr/Rstudio中是否也有一种方法可以实现自动补全。事实上,我认为我错了:)
df %>% `names<-`(c("a_new", "b_new", "c_new"))
library(dplyr)
df %>% rename(aold = anew, bold = bnew, cold= cnew) #Select the variable (old) name after typing the initials (3) + tab