如何在 r 的多个特定列中使用 gsub

use*_*308 4 r

你能帮我回答一下这个小问题吗?

我有像下面这样的 data.frame 。比,

我想轻松使用 data.frame 中的 gsub 函数特定列

因为改变的角色是一样的!但我想更改很多特定的列。

在示例代码中,它只有 4 列,但我的数据有超过 10 列,我想更改 6~7 特定列(不连续)。

并更改相同的文本...

请帮忙谢谢

我正在这样做

data$col1<-gsub("sfsdf", "Hi", data$col1)
data$col3<-gsub("sfsdf", "Hi", data$col3)
data$col4<-gsub("sfsdf", "Hi", data$col4)
Run Code Online (Sandbox Code Playgroud)

等等...

专栏太多了...

col1 <- 1:10   
col2 <- 21:30   
col3 <- c("503.90", "303.90 obs", "803.90sfsdf sf", "203.90 obs", "303.90", "103.90 obs", "303.90", "403.90 obs", "803.90sfsdf sf", "303.90 obs")   
col4 <- c("303.90", "303.90 obs", "303.90", "203.90 obs", "303.90", "107.40fghfg", "303.90", "303.90 obs", "303.90", "303.90 obs")

data <- data.frame(col1, col2, col3, col4)

data$col3 <- as.factor(data$col3)
data$col4 <- as.factor(data$col4)
Run Code Online (Sandbox Code Playgroud)

在 R 中的列上使用 gsub

akr*_*run 5

我们可以使用lapply循环遍历列并应用gsub

nm1 <- c("col1", "col3", "col5") 
data[nm1] <- lapply(data[nm1], gsub, pattern = "sfsdf", replacement = "Hi")
Run Code Online (Sandbox Code Playgroud)

或者另一个选择是mutate_at

library(dplyr)
data %>%
    mutate_at(vars(nm1), ~ str_replace(., "sfsdf", "Hi"))
Run Code Online (Sandbox Code Playgroud)