R应用功能-使用哪一个?

R应用功能-使用哪一个?,r,lapply,sapply,R,Lapply,Sapply,我不知道在这里使用哪个应用程序。 我有一个数据帧mydf作为 我想对每个值应用自定义函数,并在如下所示的新列中获得结果 terms Value1 Value2 ResultChar A 23 45 Good B 12 34 Average C 9 23 Poor 自定义函数类似于myfuncA,返回一个向量,如23,45,很好 任何帮助都将不胜感激。看起来您需要一个数据帧输出,因为各列的数据类型不同。因此,您需要定义my

我不知道在这里使用哪个应用程序。 我有一个数据帧mydf作为

我想对每个值应用自定义函数,并在如下所示的新列中获得结果

terms Value1 Value2 ResultChar
A     23     45     Good
B     12     34     Average
C     9      23     Poor
自定义函数类似于myfuncA,返回一个向量,如23,45,很好


任何帮助都将不胜感激。

看起来您需要一个数据帧输出,因为各列的数据类型不同。因此,您需要定义myfunc以返回数据帧

以这个玩具为例:

mydf <- data.frame(terms = letters[1:3], stringsAsFactors = FALSE)
myfunc <- function (u) data.frame(terms = u, one = u, two = paste0(u,u))
或者您可以使用plyr软件包中的adply:

>_ 我们可以将rbindlist与lappy一起使用。这样会更有效率

 library(data.table)
 rbindlist(lapply(mydf$terms, myfunc))

如果需要,我可以显示基准。但是它们已经显示了

当您的输入数据集只有一列(即术语)时,您是如何在预期中获得“Value1”和“Value2”的?这是一个复杂的函数,包含许多从其他数据源提取的值…我传递的只是字符a。您可以举一个简单的示例,使用一个简单的公式,您可以使用lappy ie.lapplymydf$terms循环,函数X。。。如果没有更多的信息,很难suggest@tripleee:是的。@Dirtysockssniffer我想说这个问题不是很清楚。如果OP想要选择要执行的应用功能,可能是oneModerator注意:评论不用于扩展讨论;请拿着这个聊天。
do.call(rbind, lapply(mydf$terms, myfunc))
#  terms one two
#1     a   a  aa
#2     b   b  bb
#3     c   c  cc
library(plyr)
adply(mydf, 1, myfunc)
#  terms terms.1 two
#1     a       a  aa
#2     b       b  bb
#3     c       c  cc
 library(data.table)
 rbindlist(lapply(mydf$terms, myfunc))