Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在dplyr中自动完成列名?_R_Autocomplete_Dplyr - Fatal编程技术网

如何在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