benutze mehrere Spalten als Variablen mit sapply

Ich habe eindataframe und ich möchte eine Funktion anwenden, die die Werte von drei Spalten nimmt und die minimale Differenz zwischen den drei Werten berechnet.

<code>#dataset
df <- data.frame(a= sample(1:100, 10),b = sample(1:100, 10),c= sample(1:100, 10))

#function
minimum_distance <- function(a,b,c)
{
  dist1 <- abs(a-b)
  dist2 <- abs(a-c)
  dist3 <- abs(b-c)
  return(min(dist1,dist2,dist3))
}
</code>

Ich suche etwas wie:

<code>df$distance <- sapply(df, function(x) minimum_distance(x$a,x$b,x$c) )
## errormessage
Error in x$a : $ operator is invalid for atomic vectors
</code>

Während ich ddply benutzen kann:

<code>df2 <- ddply(df,.(a),function(r) {data.frame(min_distance=minimum_distance(r$a,r$b, r$c))}, .drop=FALSE)
</code>

Dadurch bleiben nicht alle Spalten erhalten. Irgendwelche Vorschläge?

Bearbeiten: Ich endete mit:

<code>df$distance <- mapply(minimum_distance, df$a, df$b, df$c)
</code>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage