2014-11-07 2 views
0

У меня есть строка, подобная «[0 0.1 0.2 0.4]», и я хочу, чтобы вырезать круглые скобки и извлекать значения как числовые. Я могу раздеться круглыми скобками, но когда дело доходит до преобразования в числовой, то у меня есть ошибка с НСОМ:Как преобразовать строку в числовые значения в R

cleanList <- function(aString){ 
    temp <- gsub("\\[|\\]", "", aString) 
    as.numeric(temp) 
} 

есть способ преобразования каждого из символа в строке в числа?

EDIT: вот еще один подход, который использует stringr:

cleanList <- function(aString){ 
    as.numeric(str_extract_all(aString,"\\(?[0-9,.]+\\)?")[[1]]) 
} 
cleanList("[0 0.1 0.2 0.4]") 
[1] 0.0 0.1 0.2 0.4 

ответ

2

Вы должны разделить temp в вектор, а затем вызвать as.numeric по этому вопросу. Если предположить, что цифры в temp разделены пробелами,

temp2 <- unlist(strsplit(temp, " ")) 
as.numeric(temp2) 
# 0.0 0.1 0.2 0.4 

В качестве альтернативы, do.call(as.numeric, strsplit(temp, " ")) тоже будет работать.

1

Использование strsplit:

as.numeric(strsplit(temp, " ")[[1]]) 

Смотрите документацию по ?strsplit для деталей.

Смежные вопросы