отдельные данные в переменной в R - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть переменная.wer Он имеет формат

chr [1:630] "11202 398 2018" "11353 216 2017" "11511 14 2017" "11511 36 2017" "11511 37 2017" "11511 121 2018" ...

, поэтому я не могу работать с этим форматом

          sample_df           first last
1    11202 398 2018  11202 398 2018 <NA>

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

x1      x2   x3
11202   398 2018

Как это сделать?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Вы можете преобразовать вектор в фрейм данных, а затем separate в разные столбцы

library(tidyverse)

data_frame(wer) %>%
    separate(wer, into = paste0("x", 1:3), sep = " ") %>%
    mutate_all(as.numeric)


#    x1    x2    x3   
#  <dbl> <dbl> <dbl>
#1 11202 398   2018 
#2 11353 216   2017 
#3 11511 14    2017 
#4 11511 36    2017 

Базовая опция R будет

data.frame(do.call("rbind", strsplit(wer, " ")))


#     X1  X2   X3
#1 11202 398 2018
#2 11353 216 2017
#3 11511  14 2017
#4 11511  36 2017

data

wer <- c("11202 398 2018", "11353 216 2017", "11511 14 2017", "11511 36 2017")
0 голосов
/ 23 ноября 2018

Мы можем сделать это легко в base R с read.table

read.table(text = paste(wer, collapse="\n"))
#    V1  V2   V3
#1 11202 398 2018
#2 11353 216 2017
#3 11511  14 2017
#4 11511  36 2017

Аналогичным вариантом с data.table будет fread

fread(paste(wer, collapse='\n'))

data

wer <- c("11202 398 2018", "11353 216 2017", "11511 14 2017", "11511 36 2017")
0 голосов
/ 23 ноября 2018

Вы можете сделать что-то вроде:

sample_df <- data.frame(wer = c("11202 398 2018", "11353 216 2017"))

library(tidyverse)

sample_df %>% separate(wer, c("X1", "X2", "X3"))

Вывод:

     X1  X2   X3
1 11202 398 2018
2 11353 216 2017
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...