Добавление префикса к определенным именам столбцов - PullRequest
0 голосов
/ 16 октября 2019

У меня проблема, очень похожая на эту: Добавление префикса к именам столбцов . Я хочу добавить префикс к имени столбца - единственное отличие состоит в том, что я не хочу добавлять префикс к каждому столбцу, который у меня есть. Здесь тот же минимальный воспроизводимый пример, что и в вопросе, упомянутом выше:

m2 <- cbind(1,1:4)
colnames(m2) <- c("x","Y")

В результате:

     x Y
[1,] 1 1
[2,] 1 2
[3,] 1 3
[4,] 1 4

Код для добавления префикса «Sub» в оба столбца будет выглядетьэто (как предложено пользователем A5C1D2H2I1M1N2O1R2T1):

colnames(m2) <- paste("Sub", colnames(m2), sep = "_")

В результате:

     Sub_x Sub_Y
[1,]     1     1
[2,]     1     2
[3,]     1     3
[4,]     1     4

Как добавить префикс «Sub» только в первый столбец? Я попробовал следующее:

colnames(m2[,1]) <- paste("Sub", colnames(m2[,1]), sep = "_")

Результат кода: Нет Предупреждение, нет ошибки, но также нет префикса. Какие-либо предложения? Помимо базы r также приветствуются любые предложения, использующие dplyr. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 16 октября 2019

С dplyr вы можете сделать:

m2 %>%
 as.data.frame() %>%
 rename_at(1, ~ paste("Sub", ., sep = "_"))

  Sub_x Y
1     1 1
2     1 2
3     1 3
4     1 4
1 голос
/ 16 октября 2019

Попробуйте это:

colnames(m2)[1] <- paste0("Sub", "_", colnames(m2)[1])
# or if you prefer paste
#colnames(m2)[1] <- paste("Sub", colnames(m2)[1], sep = "_")
0 голосов
/ 16 октября 2019

Также paste() принимает векторы, чтобы вы могли сделать:

colnames(m2) <- paste0(c("Sub_", ""), colnames(m2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...