Объем вытянутого сфероида - PullRequest
0 голосов
/ 28 марта 2020

У меня есть набор данных с длиной и шириной вытянутого сфероида:

df <- data.frame(nr = c(1, 2, 3), length = c(4, 5, 3), width = c(2, 2, 1))
df

Теперь я хочу создать дополнительный столбец с объемом. Я использовал формулу V = 4/3 * pi * a²b (с длиной и шириной a и b = 1/2 соответственно):

df$volume <- (4/3)*pi*(df$length/2)^2*(df$width/2)

Это работает, но я хочу знать, есть ли может быть встроенная формула для этого в R?

1 Ответ

0 голосов
/ 29 марта 2020

Мне не известна такая функция, и я был бы немного удивлен, увидев, что она где-то реализована, просто потому, что это немного эзотерическая c геометрия. (Каждая концепция esoteri c stats была реализована где-то в R или в пакете, но концепции esoteri c geometry встречаются гораздо реже, поскольку R не является инструментом, разработанным с геометрией c приложений, в особенности.)

Тем не менее, если такая вещь уже где-то реализована, то почему бы просто не написать пользовательскую функцию, используя код, который вы дали?

spheroid_vol <- function(length, width){
  4/3 * pi * (length/2)^2 * (width/2)^2
}

> spheroid_vol(df$length, df$width)
# 16.755161 26.179939  2.356194

Вы также можете сделать эту функцию лучше, выполнив такие вещи, как проверка, чтобы убедиться, что входы не пустые, и т. Д. c - но это может или не может стоить усилий в зависимости от того, что вы хотите с ним делать.

...