Похоже, ваши типы данных не могут быть числовыми c. Следовательно, часть сообщения об ошибке invalid 'type' (character)
.
Один из способов проверить ваши типы данных (в R есть много способов, этот пост R-bloggers охватывает несколько других вариантов) - через summary
и glimpse
.
Применение их к встроенному набору данных starwars:
library(dplyr)
data(starwars)
summary(starwars)
name height mass hair_color skin_color
Length:87 Min. : 66.0 Min. : 15.00 Length:87 Length:87
Class :character 1st Qu.:167.0 1st Qu.: 55.60 Class :character Class :character
Mode :character Median :180.0 Median : 79.00 Mode :character Mode :character
Mean :174.4 Mean : 97.31
3rd Qu.:191.0 3rd Qu.: 84.50
Max. :264.0 Max. :1358.00
NA's :6 NA's :28
glimpse(starwars)
Observations: 87
Variables: 13
$ name <chr> "Luke Skywalker", "C-3PO", "R2-D2", "Darth Vader", "Leia Organa",...
$ height <int> 172, 167, 96, 202, 150,...
$ mass <dbl> 77.0, 75.0, 32.0, 136.0, 49.0,...
$ hair_color <chr> "blond", NA, NA, "none", "brown",...
$ skin_color <chr> "fair", "gold", "white, blue", "white",...
Это показывает четкую разницу между символьными и числовыми типами данных c в набор данных. Если столбец вашего набора данных должен быть числовым c, но был сохранен как текст, вы можете использовать as.numeric
для его преобразования.
Например, сравните следующие результаты
# make a column incorrectly character
starwars2 = starwars %>% mutate(mass = as.character(mass))
# view incorrect data
glimpse(starwars2)
# view corrected data
glimpse(starwars2 %>% mutate(mass = as.numeric(mass)))