【发布时间】:2021-12-16 08:24:52
【问题描述】:
是否有更快的方法来执行以下操作,在实际应用程序中,df 有很多行(因此list_of_colnames 有相同数量的元素):
list_of_colnames <- list(c("A", "B"), c("A"))
some_vector <- c("fish", "cat")
map2(split(df, seq(nrow(df))), list_of_colnames, function(row, colnames) {
row$indicator <- ifelse(any(row[, colnames] %in% some_vector), 1, 0)
return(row)
})
虽然当前的实现有效,但大型 df 需要几个世纪的时间。事实上,我认为split() 是一个主要瓶颈。
谢谢!
【问题讨论】: