R 如何在数据帧中的多个列上运行函数?
我有一个约96000人的数据库,我正试图将其与另一个类似的数据库进行匹配。有些缺少ID号,所以我需要匹配列,但是数据有点混乱,包含尾随空格和奇怪的大写字母 我正在使用BBmisc包中的R 如何在数据帧中的多个列上运行函数?,r,R,我有一个约96000人的数据库,我正试图将其与另一个类似的数据库进行匹配。有些缺少ID号,所以我需要匹配列,但是数据有点混乱,包含尾随空格和奇怪的大写字母 我正在使用BBmisc包中的trimws()和capatalitestrings()。但只知道如何在单独的命名列上运行这些 MDB$City<- capitalizeStrings(MDB$City,lower.back = T,all.words = T) MDB$City<-trimws(MDB$City,which="bo
trimws()
和capatalitestrings()
。但只知道如何在单独的命名列上运行这些
MDB$City<- capitalizeStrings(MDB$City,lower.back = T,all.words = T)
MDB$City<-trimws(MDB$City,which="both")
MDB$City我们可以使用lappy
在多个列上循环,然后将输出分配回数据集的子集
MDB[nm1] <- lapply(MDB[nm1], function(x)
trimws(capitalizeStrings(x, lower.back = TRUE, all.words = TRUE), "both"))
MDB[nm1]我们可以使用lappy
在多个列上循环,然后将输出分配回数据集的子集
MDB[nm1] <- lapply(MDB[nm1], function(x)
trimws(capitalizeStrings(x, lower.back = TRUE, all.words = TRUE), "both"))
MDB[nm1]另一个选项是dplyr::mutate_if
。例如:
library(dplyr)
MDB %>%
mutate_if(is.character, trimws(which = "both"))
另一个选项是dplyr::mutate\u if
。例如:
library(dplyr)
MDB %>%
mutate_if(is.character, trimws(which = "both"))
您可以使用lappy
即MDB[nm1]这很完美,谢谢您可以使用lappy
即MDB[nm1]这很完美,谢谢