通过函数传递数据框数据

Passing data frame data through function

# mtcars <- view(mtcars)

sq_sum_diff <- function(d, w) {  # d, and c are columns draft and weight
  a <- d^2
  b <- w^2
  p <- sqrt(sum(a^2 - b^2)
  return(p)
}

我要返回的是一个df,两者的平方差。

我认为这将完成您想要完成的工作:

data(mtcars)

sq_sum_diff <- function(d, w) {
  sqrt(sum(d^2 - w^2))
}
sq_sum_diff(mtcars$drat, mtcars$wt)


library(tidyverse)

mtcars %>% 
  summarize(dif_sqr = sq_sum_diff(drat, wt))

为什么要对值进行两次平方?将 d^2 分配给 a 一次,然后计算平方和?此外,您还缺少 sqrt 的匹配括号。最后,你不需要赋值给p然后return(p),函数会自动return最后一行。为了将来参考,您可以简单地调用 data(mtcars) 而无需将其分配给 mtcars.