相关疑难解决方法(0)

给定列名称和替换的字符向量的多个列

虽然这很容易用碱R或做setnames in data.tablerename_dplyr0.5.由于rename_不推荐使用,我无法在dplyr0.6.0中找到一种简单的方法.

以下是一个例子.我想col.from用以下相应的值替换列名col.to:

col.from <- c("wt", "hp", "vs")
col.to <- c("foo", "bar", "baz")

df <- mtcars
head(df, 2)
#>               mpg cyl disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4      21   6  160 110  3.9 2.620 16.46  0  1    4    4
#> Mazda RX4 Wag  21   6  160 110  3.9 2.875 17.02  0  1    4    4
Run Code Online (Sandbox Code Playgroud)

预期产量:

names(df)[match(col.from, names(df))] <- col.to
head(df, …
Run Code Online (Sandbox Code Playgroud)

r dplyr

6
推荐指数
1
解决办法
4289
查看次数

rename_if() 和 starts_with() 为某些列添加前缀

我的数据如下所示:

#>           Artist          Album Year
#> 1        Beatles  Sgt. Pepper's 1967
#> 2 Rolling Stones Sticky Fingers 1971
Run Code Online (Sandbox Code Playgroud)

我的问题应该很简单。我试图只使用rename_if以字母“A”开头的列作为前缀。所以我想要的输出是:

#>       df1_Artist      df1_Album Year
#> 1        Beatles  Sgt. Pepper's 1967
#> 2 Rolling Stones Sticky Fingers 1971
Run Code Online (Sandbox Code Playgroud)

您可以看到不应以“年份”为前缀。

这是我的尝试,但效果不佳。我使用starts_with不正确吗?我应该试着把它分成两行,这样我才能更清楚地理解它吗?我还在学习 purrr 风格的函数,所以它对我来说并不总是很直观。

df1 %>% rename_if(starts_with("A"), .funs = ~ paste0(df1, .))
#> Error in df1 %>% rename_if(starts_with("A"), .funs = ~paste0(df1, .)): could not find function "%>%"
Run Code Online (Sandbox Code Playgroud)

数据输入代码:

df1 <- data.frame(stringsAsFactors=FALSE,
      Artist = c("Beatles", "Rolling Stones"),
       Album = c("Sgt. Pepper's", …
Run Code Online (Sandbox Code Playgroud)

r rename dplyr purrr tidyverse

5
推荐指数
1
解决办法
2828
查看次数

标签 统计

dplyr ×2

r ×2

purrr ×1

rename ×1

tidyverse ×1