#r
Вопрос:
Я пытался прочесть архивы, чтобы найти решение, но безуспешно. Я хочу заменить строку («_» на » «) в подмножестве столбцов в R:
January_2019= c(4, 5)
February_2019= c(1,2)
OtherVariable = c(3,5)
dateColumns <- c("January_2019",
"February_2019")
df <- data.frame(January_2019, February_2019, OtherVariable)
colnames(df[dateColumns]) <- gsub("_", " ", colnames(df[dateColumns]))
Я не могу понять, почему это не работает. Заранее спасибо.
Ответ №1:
В текущей версии кода OP мы можем использовать match
для поиска индекса ‘dateColumns’ для подмножества. Хотя gsub
код работает для целых столбцов, предполагается, что вопрос заключается в том, как использовать gsub
подмножество столбцов
i1 <- match(dateColumns, names(df))
names(df)[i1] <- gsub("_", " ", names(df)[i1])
names(df)
#[1] "January 2019" "February 2019" "OtherVariable"
Или в tidyverse
library(dplyr)
library(stringr)
df <- df %>%
rename_with(~ str_replace_all(., '_', ' '), all_of(dateColumns))
Ответ №2:
Самое простое решение на самом деле таково:
names(df) <- gsub("_", " ", names(df))
Результат:
df
January 2019 February 2019 OtherVariable
1 4 1 3
2 5 2 5
Комментарии:
1. Почему я не могу использовать имена(df) с подмножеством столбцов и заставить его работать? Например, что делать, если я хочу заменить подчеркивание только в определенных столбцах?