Действуйте следующим образом:
Шаг 1: ваши данные (при отсутствии воспроизводимых данных вот некоторые фиктивные данные):
set.seed(12)
df <- data.frame(
var1 = sample(1:10, 3),
var2 = c("2,130.34", "1,000.01", "20,999.55"),
var3 = c("23%", "-1.45%", "12.88%")
)
df
var1 var2 var3
1 1 2,130.34 23%
2 8 1,000.01 -1.45%
3 9 20,999.55 12.88%
Шаг 2: str
показывает, что выиметь два фактора:
str(df)
'data.frame': 3 obs. of 3 variables:
$ var1: int 1 8 9
$ var2: Factor w/ 3 levels "1,000.01","2,130.34",..: 2 1 3
$ var3: Factor w/ 3 levels "-1.45%","12.88%",..: 3 1 2
Шаг 3: преобразовать коэффициенты в символы, используя lapply
:
df[,2:3] <- lapply(df[,2:3], as.character)
Шаг 4: удалить запятые и знаки процента:
df[,2:3] <- lapply(df[,2:3], function(x) gsub(",|%", "", x))
df
var1 var2 var3
1 1 2130.34 23
2 8 1000.01 -1.45
3 9 20999.55 12.88
Шаг 5: преобразовать в числовое значение:
df[,2:3] <- lapply(df[,2:3], as.numeric)
Шаг 6: проверить преобразование:
(str(df)
'data.frame': 3 obs. of 3 variables:
$ var1: int 1 8 9
$ var2: num 2130 1000 21000
$ var3: num 23 -1.45 12.88