Поскольку вы используете str_replace_all
, я делаю вывод о tidyverse. Попробуйте следующее:
library(dplyr)
test_data %>%
mutate_at(vars(V1, V3, V5), ~ as.numeric(gsub("\\s", "", .)))
# V1 V2 V3 V4 V5
# 1 -2.5935 II 2 0.4984 ST 123E -2.1544
# 2 -0.2888 ST 123E 1.5636 ST 123E 0.1053
# 3 -0.8286 ST 123E -0.9791 HP 129 -0.4989
# 4 -0.3220 ST 123E -0.3013 HP 129 -0.4032
# 5 -0.5588 ST 123E 1.2694 HP 129 0.7039
, поскольку gsub
отлично работает сам по себе. Если вы предпочитаете stringr
, тогда
library(stringr)
test_data %>%
mutate_at(vars(V1, V3, V5), ~ as.numeric(str_replace_all(., "\\s", "")))
Edit
Чтобы определить, какие столбцы не имеют буквенных данных, тогда
test_data %>%
mutate_if(~ !any(grepl("[A-Za-z]", .)),
~ as.numeric(str_replace_all(., "\\s", "")))