Как пометить все целочисленные значения на «-1» в R Studio? - PullRequest
0 голосов
/ 26 августа 2018

Что эквивалентно SQL-серверу - это числовая функция в R studio.Я пытаюсь перенести одну из логики SQL в r studio, и у меня есть столбец, в котором она содержит и значения Char, и значения Int, теперь я хочу взять только значения int и обновить их как -1 в R data.table.Пожалуйста, помогите мне решить проблему.

Я прикрепил результаты в виде изображения, значения столбца «A» являются текущими значениями, и я ожидаю, что они имеют значения, подобные столбцу B.

enter image description here

Ответы [ 3 ]

0 голосов
/ 26 августа 2018

Существуют также инструменты типов данных в R (как в SQL и других языках), такие как is.numeric() и is.integer() в R. Обычно они возвращают логические значения, но вы можете использовать sub или gsub() дляэто -1:

example <- list(123, 321, "not numeric", as.Date("2018/01/01"))

gsub(T, -1, sapply(example, is.numeric))
[1] "-1" "-1" "FALSE"   "FALSE"

Также обратите внимание, что в R numeric отличается от integer.

example <- list(as.integer(123), 321, "not numeric", as.Date("2018/01/01"))
example[sapply(example, is.integer)] <- -1
example
[[1]]
[1] -1

[[2]]
[1] 321

[[3]]
[1] "not numeric"

[[4]]
[1] "2018-01-01"

Вы можете конвертировать их вперед и назад с помощью as.numeric() и as.integer().Также отметим, что в R типы данных в этом смысле называются классом или классами данных, тогда как тип в R относится к типу данных хранения или R.

0 голосов
/ 27 августа 2018

Наконец-то я решил эту проблему, выполнив следующие шаги.

  1. захватил все числовые значения в отдельную таблицу данных, используя скрипт ниже CustomDerivedL2AMID <- (подмножество (DimCombinedEnduser $ DRVDEUL2AMID, grepl ('^ \ d + $', DimCombinedEnduser $ DRVDEUL2AMID))) библиотека (data.table) HandleDerivedL2AMID <-data.table (CustomDerivedL2AMID) </p>

  2. сопоставить результаты таблицы HandleDerivedL2AMID с исходной таблицей данных и заменить все значения на -1. DCE $ DRVDEUL2AMID <- replace (DCE $ DRVDEUL2AMID, DCE $ DRVDEUL2AMID% в% HandleDerivedL2AMID $ CustomDerivedL2AMID, '- 1') </p>

теперь я вижу только символьные значения. больше нет числовых значений с данными, установленными в DRVDEUL2AMID.

0 голосов
/ 26 августа 2018

Я думаю, что если вы особенно заинтересованы в целых числах, то приведенный выше вопрос является дубликатом следующего: Проверьте, является ли число целым числом

Ваше условие if будет выглядеть примерно так:х == круглый (х, 0).Это будет ИСТИНА, если значения являются целыми числами, но не двойными или другими нечисловыми классами.

...