你能帮我回答一下这个小问题吗?
我有像下面这样的 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)
我们可以使用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)