logoalt Hacker News

_Wintermute11/20/20244 repliesview on HN

In my opinion R should thought of as an unbeatable graphical calculator, but an awful programming language.


Replies

williamcotton11/20/2024

The tinyverse collection of packages makes things a lot more sane, IMO:

  penguins <- read_csv("penguins.csv") |>
    na.omit() |>
    select(species, island, bill_length_mm, body_mass_g) |>
    group_by(species, island) |>
    summarize(
      mean_bill_length = mean(bill_length_mm),
      mean_mass = mean(body_mass_g),
      n = n()
    ) |>
    arrange(species, desc(mean_bill_length))
  
  penguins |>
    ggplot(aes(x = species, y = mean_bill_length, fill = island)) +
    geom_col(position = "dodge") +
    labs(
      title = "Mean Bill Length by Species and Island",
      y = "Mean Bill Length (mm)"
    ) +
    theme_minimal()
show 1 reply
currymj11/20/2024

i would compare base R to basically a shell. meant to be used interactively. okay for small scripts. you can write big programs but it will get weird.

wdkrnls11/24/2024

You must hate lisp/scheme then too, which has similar semantics as R. In that case books such as SICP would be lost on you.

perrygeo11/21/2024

That's how I view it. I still use R for plotting and quick stats analyses but it is painful to do any real work.

I recommend the article "Evaluating the Design of the R Language" [1] - it reads like a horror story. The memory usage and performance is abysmal, the OO features are a mess, and the semantics are very weird ("best effort semantics" is about as predictable as it sounds!). The lexical scoping is based on Scheme but has so many weird edge cases. It's a dumpster fire of a language, but it somehow works for its intended purpose.

[1] http://janvitek.org/pubs/ecoop12.pdf