У меня есть кадр данных, который я заселить из файла CSV следующим образом (данные для образца только):lapply на одной колонке в кадре данных
> csv_data <- read.csv('test.csv')
> csv_data
gender country income
1 1 20 10000
2 2 20 12000
3 2 23 3000
Я хочу, чтобы преобразовать страну к фактору. Однако, когда я делаю следующее, он не:
> csv_data[,2] <- lapply(csv_data[,2], factor)
Warning message:
In `[<-.data.frame`(`*tmp*`, , 2, value = list(1L, 1L, 1L)) :
provided 3 variables to replace 1 variables
Однако, если преобразовать как пол и страна к фактору, она преуспевает:
> csv_data[,1:2] <- lapply(csv_data[,1:2], factor)
> is.factor(csv_data[,1])
[1] TRUE
> is.factor(csv_data[,2])
[1] TRUE
Есть ли что-то я делаю не так? Я хочу использовать lapply, так как я хочу программно преобразовать столбцы в факторы, и было бы возможно, что количество столбцов, которые будут преобразованы, равно 1 (это может быть больше, это число выводится из аргументов в функцию). В любом случае, я могу сделать это, используя только lapply?