Я пытаюсь преобразовать фрейм данных, который содержит числа и пробелы, в числовой. В настоящее время числа имеют формат factor
, а некоторые имеют ",".
df <- data.frame(num1 = c("123,456,789", "1,234,567", "1,234", ""), num2 = c("","1,012","","202"))
df
num1 num2
1 123,456,789
2 1,234,567 1,012
3 1,234
4 202
Удалить "," и преобразовать в числовой формат:
df2 = as.numeric(gsub(",","",df))
Warning message:
NAs introduced by coercion
Интересно, что если я выполняю одну и ту же функцию столбец за столбцом, это сработало:
df$num1 = as.numeric(gsub(",","",df$num1))
df$num2 = as.numeric(gsub(",","",df$num2))
df
num1 num2
1 123456789 NA
2 1234567 1012
3 1234 NA
4 NA 202
Мои вопросы: 1. В чем причина, и если есть способ избежать их преобразования столбец за столбцом, поскольку фактический фрейм данных имеет гораздо больше столбцов; и 2. Как лучше всего удалить NA или заменить их на 0 для будущих числовых операций? Я знаю, что могу использовать gsub
, но просто задаюсь вопросом, есть ли лучший способ.