我有个问题,就是用最后的函数来使用strsplit。我正在使用泰坦尼克号数据集,我想用",“和”来分隔名字。“并摘录“先生”、“夫人”等等。
我尝试了这段代码并给出了错误
lapply(data$Name, strsplit(data$Name, split = "[,.]")[[1]][2])get中的错误(as.character(好玩),mode = "function",envir = envir):找不到‘Mr’of mode 'function‘的对象
但是,此代码工作正常。
lapply(data$Name, function(x)strsplit(x, split = "[,.]")[[1]][2])[995]“先生”
我不知道这两者有什么区别..。
发布于 2022-09-17 05:51:23
lapply的第二个参数需要是一个函数。表达式strsplit(data$Name, split = "[,.]")[[1]][2]不是一个函数,它是应用于data$Name的带有附加参数的strplit()的输出。
在第二个示例中,它确实有一个(匿名)函数作为第二个参数,很明显,lapply需要对第一个参数的每个元素做什么。
考虑:
data <- list(1,2,3)
lapply(data, paste0(data, "_")) # Error, paste0(data, "_") is a vector, not a function
lapply(data, function(x) paste0(x, "_")) # Works[[1]]
[1] "1_"
[[2]]
[1] "2_"
[[3]]
[1] "3_"https://stackoverflow.com/questions/73752400
复制相似问题