Как я могу получить свои номера от персонажа отдельно в R? - PullRequest
0 голосов
/ 01 марта 2019

enter image description here

newdata <- "1311 1381 1382 1311 1222 1221 2819 2869 2911 2879 5171 5172 6719 1311 1381 1382 2899 2833 2879 2869 2819 1311 1311 1381 1382 2911 5541 6719 2911 2865 2821 2822 2819 5171 5172 5541 1311"

class(newdata)
[1] character

Как показано на рисунке, у меня есть набор данных, один из данных newdata, это character.

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

[1311,1381,1382,1311,1222,1221,....]

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Как это работает для вас:

 library(tidyverse)

newdata <- "1311 1381 1382 1311 1222 1221 2819 2869 2911 2879 5171 5172 6719 1311 1381 1382 2899 2833 2879 2869 2819 1311 1311 1381 1382 2911 5541 6719 2911 2865 2821 2822 2819 5171 5172 5541 1311"

    str_split(newdata, " ") %>% map(., as.numeric)   # for list output
    str_split(newdata, " ") %>% map(., as.numeric) %>% bind_cols() # for df/tibble
    str_split(newdata, " ") %>% map(., as.numeric) %>% bind_cols() %>% .[["V1"]] #for vector
0 голосов
/ 01 марта 2019

Я не уверен, что предложения в комментариях решили вашу проблему, но другая возможность заключается в использовании strsplit.

Давайте рассмотрим character вектор

newdata <- c(
    "1311 1381 1382 1311 1222 1221", 
    "2819 2869 2911 2879 5171 5172 6719 1311 1381 1382 2899 2833")

Тогда мы можем сделать

lst <- lapply(newdata, function(x) as.numeric(unlist(strsplit(x, " "))))
lst
#[[1]]
#[1] 1311 1381 1382 1311 1222 1221
#
#[[2]]
# [1] 2819 2869 2911 2879 5171 5172 6719 1311 1381 1382 2899 2833

В результате получается list из numeric векторов

str(lst)
#List of 2
# $ : num [1:6] 1311 1381 1382 1311 1222 ...
# $ : num [1:12] 2819 2869 2911 2879 5171 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...