Удаление пробела между числовыми значениями в R - PullRequest
0 голосов
/ 12 октября 2018

Мой список состоит из значений, как показано.

Mylist:
[[1]]
[1] 1 1 1 0 1 1

[[2]]
[1] 0 0 0 0 1 0

[[3]]
[1] 0 0 0 0 1 0

Мне нужно преобразовать эти двоичные значения в десятичные.Я использую функцию BinToDec().Но здесь значения разделены пробелом.Как получить значения, такие как 111011, 000010 и т. Д. В этом списке.Я пытался с gsub, но он удаляет пробелы в строке.Спасибо!

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

Спасибо. as.numeric(paste(as.character(Mylist[[i]]),collapse = "")) решает проблему.

0 голосов
/ 19 июля 2019

Пакет (StringR)

Код ниже позволяет найти определенный символ и удалить или заменить

Код str_replace_all (x, "", "")

, относящийся кyou

str_replace_all (list, "", "")

Объяснение

str_replace_all (Набор данных, " символ, который вы ищете ", " символ замены")

Если только для определенной строки обязательно выполните следующие действия:

str_replace_all (Набор данных $ Row," искомый символ"," символ замены")

0 голосов
/ 12 октября 2018

Попробуйте использовать gsub с lapply для удаления всех пробелов:

BinToDec <- function(x) 
    sum(2^(which(rev(unlist(strsplit(as.character(x), "")) == 1))-1))

lst <- list("1 1 1 0 1 1", "0 0 0 0 1 0", "0 0 0 0 1 0")
unlist(lapply(lst, function(x) BinToDec(gsub("\\s+", "", x))))

[1] 59  2  2

Я взял вышеуказанную функцию BinToDec из этого SO ответа , который, возможно, такжеВы видели это.

Редактировать:

Если у вас есть список целочисленных векторов, используйте эту опцию:

lst <- list(c(1,1,1,0,1,1), c(0,0,0,0,1,0), c(0,0,0,0,1,0))
unlist(lapply(lst, function(x) BinToDec(paste(as.character(x), collapse=""))))

[1] 59  2  2

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...