我无法在R中找到这个简单问题的解决方案。如何在没有循环的情况下将“用户定义”函数应用于数据帧的每个元素(单元格)?
func <- function(cell){
if (cell==1) return("hello")
else return ("bye")
}
请不要试图说你可以在数据框中用“hello”替换1。它只是标量上用户定义函数的一个例子,但我们可以将它应用于每个元素。该函数可能是几百行代码。 我尝试了mapply和sapply,但没有工作。显然,我错过了一些东西。提前谢谢。
答案 0 :(得分:0)
您需要apply
见:
func <- function(cell){
if (cell==1) return("hello")
else return ("bye")
}
df=data.frame(x=1:5,y=-2:2)
apply(df,c(1,2),func)
x y
[1,] "hello" "bye"
[2,] "bye" "bye"
[3,] "bye" "bye"
[4,] "bye" "hello"
[5,] "bye" "bye"