当前位置: 首页 > 知识库问答 >
问题:

如何使用dplyr将新列名作为字符串重命名选定的列

毕富
2023-03-14

我有以下小消息:

library(tidyverse)
df <- structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5), Sepal.Width = c(3.5, 
3, 3.2, 3.1, 3.6), Petal.Length = c(1.4, 1.4, 1.3, 1.5, 1.4)), .Names = c("Sepal.Length", 
"Sepal.Width", "Petal.Length"), row.names = c(NA, 5L), class = c("tbl_df", 
"tbl", "data.frame"))
> df
# A tibble: 5 × 3
  Sepal.Length Sepal.Width Petal.Length
*        <dbl>       <dbl>        <dbl>
1          5.1         3.5          1.4
2          4.9         3.0          1.4
3          4.7         3.2          1.3
4          4.6         3.1          1.5
5          5.0         3.6          1.4
  Sepal.Length.xxx Sepal.Width Petal.Length.xxx
          5.1         3.5          1.4
          4.9         3.0          1.4
          4.7         3.2          1.3
          4.6         3.1          1.5
          5.0         3.6          1.4

我尝试了这个错误:

>df %>% rename(paste(Sepal.Length,to_app,sep="") = Petal.Length,paste(Sepal.Width,to_app,sep="") = Petal.Length)
Error: unexpected '=' in "df %>% rename(paste(Sepal.Length,to_app,sep="") ="

共有1个答案

霍建柏
2023-03-14

如果要使用DPLYR的rename函数,最好创建一个命名向量/列表,并在标准计算版本中使用.dots参数调用它:

cols <- c("Sepal.Length", "Petal.Length")
to_app <- ".xxx"
cols <- setNames(cols, paste0(cols, to_app))

df %>% rename_(.dots = cols)

## A tibble: 5 × 3
#  Sepal.Length.xxx Sepal.Width Petal.Length.xxx
#*            <dbl>       <dbl>            <dbl>
#1              5.1         3.5              1.4
#2              4.9         3.0              1.4
#3              4.7         3.2              1.3
#4              4.6         3.1              1.5
#5              5.0         3.6              1.4

但是请注意,在dplyr的下一个版本0.6.0中,这种方法可能会发生变化(例如,请参见http://blog.rstudio.org/2017/04/13/dplyr-0-6-0-compleas-soon/和http://dplyr.tidyverse.org/articles/programming.html)。

 类似资料:
  • 本文向大家介绍如何使用dplyr根据与列名称匹配的字符串选择R中的列?,包括了如何使用dplyr根据与列名称匹配的字符串选择R中的列?的使用技巧和注意事项,需要的朋友参考一下 R中的列选择通常使用列号或其名称和$delta运算符完成。我们还可以选择带有部分名称字符串或完整名称的列,而无需使用$delta运算符。这可以通过dplyr软件包的select and match功能来完成。 示例 加载dp

  • 我有一个表,它有列[col1、col2、col3....col9]。我想在Python中把所有列数据合并到一个列中作为col?

  • 因此,我试图创建一个新的SQLite表,其名称由我的应用程序中创建的字符串设置。字符串是从int userID和curret date(到字符串)创建的 和错误指向我的PreparedStatement,我敢打赌‘?’有问题,但如何用其他方法呢?

  • 问题内容: 我最近发现了熊猫的“分配”方法,我发现它非常优雅。我的问题是新列的名称被指定为关键字,因此它不能包含空格或破折号。 但是如果我想将新列命名为“ ln(A)”怎么办?例如 我知道我可以在.assign调用之后立即重命名该列,但是我想了解更多有关此方法及其语法的信息。 问题答案: 您可以将关键字参数传递为字典,如下所示:

  • 我对动词 使用基本的将一列数据转换为z-scores,并在data.frame中创建一个新列(这里的名称为)非常简单: 但是,由于我有许多数据列需要转换,所以我可能应该使用谓词。 null 谢谢你的帮助。

  • 我编写了这个函数,它只是用子字符串替换数据表列中的每个值: 但每次我试着运行它时,我都会发现错误: 现在我已经做了很多关于为什么它不起作用的研究,但我不明白。我读过一些关于标准评估和懒散的东西,但我尝试的似乎都不管用。有什么帮助吗? 谢谢