R-将数据帧拆分为向量,并将它们作为不同的参数传递给同一个函数

R-将数据帧拆分为向量,并将它们作为不同的参数传递给同一个函数,r,R,我有一个函数,它可以根据需要获取尽可能多的“数据向量”输入,并对所有输入一起执行操作。因此,以下工作: myFunction( df[,1], df[,2], df[,3], ..up to the number of columns.. ) 我希望将数据帧(或矩阵)拆分为不同的列向量,并将它们作为不同的输入提供(基本上是上面的示例,而不必逐个写入每一列) 我已尝试以下几点: myFunction( split( df, col(df) ) ) 这不起作用,因为我尝试使用的函数不接受输入列表

我有一个函数,它可以根据需要获取尽可能多的“数据向量”输入,并对所有输入一起执行操作。因此,以下工作:

myFunction( df[,1], df[,2], df[,3], ..up to the number of columns.. )
我希望将数据帧(或矩阵)拆分为不同的列向量,并将它们作为不同的输入提供(基本上是上面的示例,而不必逐个写入每一列)

我已尝试以下几点:

myFunction( split( df, col(df) ) )
这不起作用,因为我尝试使用的函数不接受输入列表,它希望每个输入都是不同的参数


有办法做到这一点吗

这个问题似乎有点模棱两可。尽管如此,以下内容在很大程度上涵盖了问题中提到的内容

set.seed(1)
df <- as.data.frame(matrix(c(rep(rnorm(10),5)), ncol=5, byrow=TRUE))
df
sum(df[,1], df[,2], df[,3], df[,4], df[,5])      # 6.610139
sum(unlist(lapply(as.matrix(1:ncol(df)), function(i) {df[,i] }))) # 6.610139
set.seed(1)

df评论中建议的工作示例:

argumentList <- split(df, col(df)) # create a list of arguments
names(argumentList)[1] <- "x" # name at least one of the inputs for the default value x 
argumentList["na.rm"] <- TRUE # add any other arguments needed
do.call( myFunction, argumentList )

argumentList
do.call(myFunction,df)
?传递完整的
df
,然后使用
lappy
/
sapply
@digEmAll对
myFunction
中的列进行操作可能会更容易。它无法识别哪个输入应该与do.call的元素匹配<代码>参数“x”丢失,没有默认值,我必须去修改源文件(我没有编写函数),所以我想可能有更简洁的方法尝试
do.call(myfunction,unname(as.list(df)))
删除名称。用一个简单的可重复的数字示例来演示这一点,以清楚地揭示它。
example仅因为输入如何分离而起作用的函数对于sum()并不重要,但会导致非线性运算的问题。因为unlist将所有内容合并为一个大向量。