Your code is triying to scale a single number for each column and that doesn't makes sense, that is why you get NaNs, one way to do this would be by reshaping your data
(Note: I'm using the new pivot_wider() function from the development version of dplyr)
library(tidyverse)
dat <- read.csv(url('https://raw.githubusercontent.com/BrainStormCenter/ASQ_pilot/master/ASQ_pain_pilot_2019_04_19_v2.csv'), header = TRUE)
z.dat2 <- dat %>%
as_tibble() %>%
filter(Groups != "other") %>%
select(ID, sex, asq_1a, asq_2a, asq_3a, asq_4a, asq_5a, asq_6a,
asq_7a, asq_8a, asq_9a) %>%
gather(asq, value, -ID, -sex) %>%
group_by(ID) %>%
mutate(z = as.vector(scale(value))) %>%
pivot_wider(names_from = asq, values_from = c(value, z))
z.dat2
#> # A tibble: 137 x 20
#> ID sex value_asq_1a value_asq_2a value_asq_3a value_asq_4a
#> <fct> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 IP003 1 NA NA NA NA
#> 2 IP005 1 NA NA NA NA
#> 3 IP008 2 1 2 2 2
#> 4 IP009 2 2 3 3 2
#> 5 IP010 1 NA NA NA NA
#> 6 IP013 1 NA NA NA NA
#> 7 IP015 1 1 2 2 1
#> 8 IP016 1 2 4 3 2
#> 9 IP017 1 3 3 3 1
#> 10 IP019 2 2 4 3 NA
#> # … with 127 more rows, and 14 more variables: value_asq_5a <dbl>,
#> # value_asq_6a <dbl>, value_asq_7a <dbl>, value_asq_8a <dbl>,
#> # value_asq_9a <dbl>, z_asq_1a <dbl>, z_asq_2a <dbl>, z_asq_3a <dbl>,
#> # z_asq_4a <dbl>, z_asq_5a <dbl>, z_asq_6a <dbl>, z_asq_7a <dbl>,
#> # z_asq_8a <dbl>, z_asq_9a <dbl>