10得票4回答
使用自定义函数(一系列if语句)的sapply

我希望运行一个函数,它查看两个向量,根据两个向量中的值的符号返回不同的值。我已经编写了一个可以比较两个值的函数,但是我想在两个向量上运行它。因此,我使用了sapply,但是得到的结果与预期不同。 bear.correction<- function(x,y){ ...

10得票4回答
使用R将多个数据框写入.csv文件

我使用了lapply函数来对多个数据框应用函数: data.cleaned <- lapply(data.list, shooter_cleaning) 然后根据主题编号(例如,100)将列表中的每个数据框标记: names(data.cleaned) <- subject...

10得票2回答
R中的lapply函数如何对列表中的每个元素应用不同的函数?

我有一个列表(在R中),其中元素是不同的数据类型,例如,第一个元素是数字,第二个元素是字符。我想对每个元素应用不同的函数。例如,在下面的代码中,我尝试仅将sum函数应用于第一个元素,仅将length函数应用于第二个元素。是否有办法对列表的每个元素应用不同的函数(而不是分解列表)?data &l...

9得票2回答
在apply函数中使用"next"语句的R语言技巧

看起来在 apply 函数中,next 语句(用于停止当前的评估并进入 for 循环的下一次迭代)不起作用。 例如:lapply(1:10, function(x) if (x == 5) {next} else {print(x)}) 在 apply 中有没有方便的替代方法来使用 nex...

9得票2回答
expand.grid和mapply的组合使用?

我正在尝试创建一个变体的mapply函数(现在叫做xapply),它结合了expand.grid和mapply的功能(有点像)。也就是说,对于一个函数FUN和一个参数列表L1,L2,L3,...(长度未知),它应该生成一个长度为n1*n2*n3的列表(其中ni是列表i的长度),这个列表是将函数...

9得票2回答
将数据框加载到列表中

我正在尝试将一堆*.Rdata文件加载到一个列表中。 files <- paste0("name", 1:10, ".Rdata") data <- lapply(files, load) 这将创建一个列表,其中每个元素都只包含数据框的名称,没有其他内容。 如果我重新定义文...

9得票2回答
使用lapply函数并改变参数

R语言教材继续推广使用lapply而不是循环。即使对于带有参数的函数,这也很容易实现。 lapply(somelist, f, a=1, b=2) 但是如果参数取决于列表元素会怎么样呢? 假设我的 somelist 包含: somelist$USA somelist$Europe s...

9得票2回答
使用lapply和if对列表中的每个元素进行测试

假设我有一个列表: alist<- list(4,6,8,9) 我希望测试每个列表元素是否大于7,并返回一个由1和0组成的列表,1表示为真,0表示为假。 然而,我必须使用lapply函数。 lapply(alist,if,>7,1) or lapply(alist,if,...

9得票1回答
将这个循环封装在一个函数中,为什么会将其加速8倍?

我试图更深入地了解在R中循环和*apply函数之间的区别。在这里,我进行了一个实验,用三种不同的方式计算前10,000个三角数。 unwrapped: 简单的for循环 wrapped: 我将之前相同的循环封装成一个函数。 vapply: 使用vapply和匿名函数。 结果让我感到意外...

9得票1回答
在lapply中的匿名函数

我正在阅读 Wickham 的《Advanced R》一书。这个问题是与第12章 - 函数相关的第5个问题有关。练习要求我们: 实现一个版本的 lapply(),可以将每个组件的名称和值都提供给 FUN。 现在,当我运行以下代码时,我得到了一个列的预期答案。 c(class(iris...