У меня есть кадр данных с колонкой «episode_number», содержащей альфа-числовые значения. Я не хотел, чтобы только строки, содержащие только числовые значения в EPISODE_NUMBER - не буквенно-цифровой/пунктуации и т.д.is.numeric vs. is.integer vs. is.wholenumber - какая разница?
Я использовал это сохранить только числовые строки:
df <- df[!(grepl("[a-zA-Z]", df$episode_number)), ] df <- df[!(grepl("[[:punct:]]", df$episode_number)), ]
Далее, я хотел бы преобразовать class
столбца от символа к цифровому. В первом я попробовал:
df$episode_number <- as.numeric(df$episode_number)
получил ошибку: Error: (list) object cannot be coerced to type 'double'
Тогда я сделал:
as.numeric(as.character(df$episode_number))
и она работала.
Не уверен, действительно ли все значения были числовыми, я попытался проверить с помощью: is.integer(df$episode_number)
.
У меня [1] FALSE
.
Будучи очень озабоченным сейчас, я попытался проверить, проходит ли он все числовое испытание - это было! Нет никаких исключений между положительными целыми числами & целые числа - я в замешательстве! Как ни странно - при вводе этого, он также ударил меня сделать:
as.integer(as.character(df$episode_number))
is.integer(df$episode_number)
угадайте что? [1] TRUE
Вот мои данные образца. Может ли кто-нибудь объяснить эту причуду R
? 1) Почему двойная ошибка типа? 2) Почему целое число не является положительным целым? 3) Почему as.numeric не работает и as.numeric(as.character(x))
работать?
> df material_type material material.1 content_identifier_description episode_number 1 ZOR3 30022517 10002178 Episode 2A 2 ZOR3 30022518 10002178 Episode 2B 3 ZOR3 30022519 10002178 Episode 3A 4 ZOR3 30022520 10002178 Episode 3B 5 ZOR3 30022521 10002178 Episode 4A 6 ZOR3 30022522 10002514 Episode 101 7 ZOR3 30022523 10002178 Episode 4B 8 ZOR3 30022544 10004726 Episode 201 9 ZOR3 30022545 10004726 Episode 202 10 ZOR3 30022546 10004726 Episode 203
Показать выход из 'str (df)', желательно, прежде чем вы начнете его обрабатывать. – joran
предупреждение и детали под «фактором» могут ответить на некоторые из этих вопросов. is.wholenumber не является базовой функцией r – rawr
Также обратите внимание на то, что он задокументирован в 'help (is.integer)' '' 'is.integer (x)' не должен использоваться для проверки того, что 'x' содержит целочисленные значения. 'typeof()' скажет правду. –