R应用功能-使用哪一个?
我不知道在这里使用哪个应用程序。 我有一个数据帧mydf作为 我想对每个值应用自定义函数,并在如下所示的新列中获得结果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
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))