📅  最后修改于: 2023-12-03 14:47:11.282000             🧑  作者: Mango
在R语言中,lapply()和sapply()是两个非常常用的函数,它们都是用来对向量或列表进行操作的。虽然它们的名称很相似,但是它们的使用方式和功能有一些区别。下面对它们进行详细的介绍。
lapply()函数是“列表应用”的缩写,它是将一个函数应用于列表中的每个元素,并返回一个新的列表。lapply()函数的语法如下:
lapply(X, FUN, ...)
其中,X是要操作的列表或向量,FUN是要应用于每个元素的函数,…表示传递给FUN的其他参数。lapply()函数返回一个与X相同长度的列表,每个元素是FUN应用到对应元素的结果。
下面是一个简单的示例,使用lapply()函数对一个列表的每个元素取平方:
numbers <- list(1:3, 4:6, 7:9)
lapply(numbers, function(x) x^2)
输出结果为:
[[1]]
[1] 1 4 9
[[2]]
[1] 16 25 36
[[3]]
[1] 49 64 81
sapply()函数是“简单应用”的缩写,它是lapply()函数的升级版。sapply()函数对列表或向量进行操作,将其转换为向量并返回一个向量。sapply()函数的语法与lapply()函数相同,只不过它将返回一个向量而不是列表。
下面是一个简单的示例,使用sapply()函数对一个列表的每个元素取平方:
numbers <- list(1:3, 4:6, 7:9)
sapply(numbers, function(x) x^2)
输出结果为:
[1] 1 4 9 16 25 36 49 64 81
总之,lapply()函数和sapply()函数都是非常实用的函数,具体使用哪一个取决于具体情况。如果想保留列表的结构,并且不需要进行简化操作,可以使用lapply()函数。如果想自动简化结果并将其转换为向量,可以使用sapply()函数。