为列名添加前缀

JT8*_*T85 47 r dataframe

在阅读以下帮助文件时,应该可以为列名添加前缀:

colnames(x, do.NULL = TRUE, prefix = "col")
Run Code Online (Sandbox Code Playgroud)

以下对我不起作用.我在这做错了什么?

m2 <- cbind(1,1:4)
colnames(m2, do.NULL = FALSE)
colnames(m2) <- c("x","Y")
colnames(m2) <- colnames(m2, prefix = "Sub_")
colnames(m2)
Run Code Online (Sandbox Code Playgroud)

A5C*_*2T1 80

您误读了帮助文件.以下是要查看的论点:

do.NULL:合乎逻辑.如果FALSE和名称是NULL,则创建名称.

注意在该描述中.您的名字不再存在NULL,因此使用前缀将不起作用.

相反,使用这样的东西:

> m2 <- cbind(1,1:4)
> colnames(m2) <- c("x","Y")
> colnames(m2) <- paste("Sub", colnames(m2), sep = "_")
> m2
     Sub_x Sub_Y
[1,]     1     1
[2,]     1     2
[3,]     1     3
[4,]     1     4
Run Code Online (Sandbox Code Playgroud)

  • `colnames(m2)< - paste(colnames(m2),"sub",sep ="_")` (6认同)
  • 你如何粘贴()到结肠名的末尾? (2认同)

小智 11

作为函数使用的更新tidyverse方法 (with dplyr 1.0.2)已被取代。rename_with()rename_all()

iris %>% rename_with( ~ paste("Sub", .x, sep = "_"))
Run Code Online (Sandbox Code Playgroud)


Kim*_*Kim 9

我将添加tidyverse解决此问题的方法,为此您可以在所有列名称中添加后缀和前缀。以下在dplyr管道中添加前缀。

df <- data.frame(x = c(1, 2), y = c(3, 4))
df %>% dplyr::rename_all(function(x) paste0("a", x))
Run Code Online (Sandbox Code Playgroud)

添加后缀更容易。

df %>% dplyr::rename_all(paste0, "a")
Run Code Online (Sandbox Code Playgroud)