alply(df1 %>% as.matrix, 2, foo, keyword.count)
我有上面的代码行应用函数' foo'在< df1'的每一列上。我想为函数foo添加一个额外的参数(df2),其列数与df1相同。
之类的东西alply(df1 %>% as.matrix, 2, foo, df2 %>% as.matrix, keyword.count)
我想要一个对df1和df2使用相同迭代器的函数。在循环方面,第一次迭代中的df1 [1]和df2 [1],第二次迭代中的df1 [2]和df2 [2],依此类推。 在使用alply的当前实现中,df1 [1]使用df2矩阵作为参数而不是df2的列。
就循环而言,它看起来像这样
for(int i=0; i<ncol(df1); i++){
foo(df1[i], df2[i], keyword.count)
}
是否有适用的家庭功能允许我这样做?或某种方式来获得可以在&#34; foo&#34;中访问的迭代次数。 任何帮助将不胜感激
示例:
df1 <- data.frame(
col1 = sample(LETTERS[1:5]),
col2 = sample(LETTERS[6:10])
)
df2 <- data.frame(
col1 = sample(LETTERS[11:13]),
col2 = sample(LETTERS[14:16])
)
foo <- function(terms, fixed_terms , collocated_words ) {
terms <- terms[terms != ""]
fixed_terms <- fixed_terms[fixed_terms != ""]
##use terms and fixed_terms in another function
}
mlply(.data = as.matrix(df1), .fun = foo, fixed_terms = as.matrix(df2), collocated_word=2)
##error:
##Error in (function (terms, fixed_terms, collocated_words) :
## unused arguments (col1 = "B", col2 = "H")
答案 0 :(得分:1)
您可以使用mlply
:
mlply(as.matrix(df1), foo, argument2 = as.matrix(df2), 2)
您可能需要指定
调用每个矩阵foo
的参数