如何在lapply中指定多行语法。我的语法也没有替换第一行中的text_query。提前谢谢。
text_query<-lapply(text_query, function(x) { gsub("ABC", "ABD", x, fixed=TRUE) gsub("JKL", "JKM", x, fixed=TRUE) } )
答案 0 :(得分:4)
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) } )
我认为第一种选择是更加难以理解的,尽管^^
答案 1 :(得分:2)
Jean,lapply
接受您的第二个参数为lambda
或匿名/未命名的函数。
两个示例都使用text_query <- "ABC JKL"
作为示例数据,并返回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
调用应用于您提供的参数。