lapply 中的多行语法

multiple lines of syntax inside lapply

如何在 lapply 中指定多行语法。我的语法也没有替换第一行中的 text_query。提前谢谢你。

text_query<-lapply(text_query, function(x) {   gsub("ABC", "ABD", x, fixed=TRUE)   gsub("JKL", "JKM", x, fixed=TRUE) } )

R 不关心一个操作中的新行,所以你可以只写:

text_query <- lapply(text_query, function(x) {
    gsub("ABC", "ABD", x, fixed=TRUE)
    gsub("JKL", "JKM", x, fixed=TRUE)
})

或者,如果你想把它放在一行中,你可以用分号分隔语句,即

text_query<-lapply(text_query, function(x) {   gsub("ABC", "ABD", x, fixed=TRUE); gsub("JKL", "JKM", x, fixed=TRUE) } )

我认为第一个选项更难以理解,虽然^^

Jean,lapply 接受你的第二个参数作为 lambda 或匿名/未命名函数。

两个示例都使用 text_query <- "ABC JKL" 作为示例数据,并使用 return list('ABD JKM') 作为结果。

版本一:

text_query <- lapply(text_query, function(x) {
  x <- gsub("ABC", "ABD", x, fixed=TRUE)
  gsub("JKL", "JKM", x, fixed=TRUE)
})

text_query

版本二,将您的 lambda 替换为命名函数 mySub:

mySub <- function(string) {
  string <- gsub("ABC", "ABD", x, fixed=TRUE)
  gsub("JKL", "JKM", string, fixed=TRUE)
}

text_query <- lapply(text_query, mySub)

text_query

请注意,两者都假设您希望将两个 gsub 调用应用于您提供的参数。