Source: https://www.reddit.com/r/Rlanguage/comments/t61r9n/can_somebody_please_help_part_of_a_quality/

Option 1 - Using only base R Functions

Pros

  • Uses only base R

  • Code is very simple to understand

Cons

  • Code is not rugged
datFile <- "2022-03-03_010_100_Generate_Freq_Table_Data.txt"

dat2 <- as.numeric(readr::read_lines(datFile))

table(dat2)
## dat2
## 11.6 12.6 12.7 12.8 13.1 13.6 13.8 14.1 14.3 14.6 14.8 15.1 15.6 15.7 15.8 15.9 
##    1    1    1    1    1    1    1    1    2    1    1    1    1    1    2    2 
## 16.1 16.2 16.4 16.5 16.6   17 17.1 17.3 17.4 17.6 17.7 18.1 18.3 18.5 18.8 19.2 
##    1    1    1    3    1    1    1    1    2    1    1    1    2    1    1    1 
## 20.3 
##    1

Option 2 - Using tidyverse Packages

Pros

  • Coding logic isn’t as simple as that shown in Option 1, but it’s still easy to understand

  • This code is more rugged than what is shown in Option 1, which has multiple advantages.

    • The pipeline nature of the tidyverse enables easy extension of the code without worrying about breaking something.

    • If the code is modified, errors are more likely to be caught &emdash; even without writing explicit checks — because the tidyverse generally has strong type checking.

Cons

  • Requires installing packages to extend R’s base functionality
library(readr)
library(dplyr)

datFile <- "2022-03-03_010_100_Generate_Freq_Table_Data.txt"

dat1 <- readr::read_fwf(
  file = datFile,
  col_positions = readr::fwf_cols(vals = 4),
  col_types = cols(readr::col_double()),
  trim_ws = TRUE
)

dat2 <- dat1 |>
  group_by(vals) |> 
  summarise(n = n())
vals n
11.6 1
12.6 1
12.7 1
12.8 1
13.1 1
13.6 1
13.8 1
14.1 1
14.3 2
14.6 1
14.8 1
15.1 1
15.6 1
15.7 1
15.8 2
15.9 2
16.1 1
16.2 1
16.4 1
16.5 3
16.6 1
17.0 1
17.1 1
17.3 1
17.4 2
17.6 1
17.7 1
18.1 1
18.3 2
18.5 1
18.8 1
19.2 1
20.3 1

Data Files

The contents of the file named 2022-03-03_010_100_Generate_Freq_Table_Data.txt, which contains the raw data, are shown here.

 11.6
 14.3
 15.8
 16.5
 17.7
 12.6
 14.3
 15.9
 16.6
 18.1
 12.7
 14.6
 15.9
 17.0
 18.3
 12.8
 14.8
 16.1
 17.1
 18.3
 13.1
 15.1
 16.2
 17.3
 18.5
 13.6
 15.6
 16.4
 17.4
 18.8
 13.8
 15.7
 16.5
 17.4
 19.2
 14.1
 15.8
 16.5
 17.6
 20.3