library(tidyverse)

# Read data
df <- readr::read_csv("exp1.csv", show_col_types = FALSE)

# Select variables ending exactly with _T or _F
df_tf <- df %>% select(matches("(_T|_F)$"))

# Coerce to numeric where possible (without breaking non-numeric)
df_tf_num <- df_tf %>%
  mutate(across(everything(), ~ suppressWarnings(as.numeric(.))))

# Compute descriptives per variable
descriptives <- df_tf_num %>%
  pivot_longer(everything(), names_to = "variable", values_to = "value") %>%
  summarise(
    n = sum(!is.na(value)),
    missing = sum(is.na(value)),
    mean = mean(value, na.rm = TRUE),
    sd = sd(value, na.rm = TRUE),
    median = median(value, na.rm = TRUE),
    min = suppressWarnings(min(value, na.rm = TRUE)),
    max = suppressWarnings(max(value, na.rm = TRUE)),
    .by = "variable"
  ) %>%
  arrange(variable)

# View
print(descriptives, n = Inf)

# Optionally save
# readr::write_csv(descriptives, "exp1_TF_descriptives.csv")