Как назначить столбцы на основе позиции символа? - PullRequest
0 голосов
/ 09 мая 2018

Мой файл данных не имеет классификации столбцов, и строка1 выглядит так:

AB365960091120112011311260000005311300000001ES020000040036ES1400N

Я знаю, что символы от 1 до 8 относятся к идентификатору, от 9 до 15 - к году рождения, от 16 до 28 - к году смерти и так далее. Как создать отдельную таблицу в соответствии с положением персонажа? Как указать, что ID = символ от 1 до 8, например, в R lenguage?

Я хочу, чтобы мой стол выглядел так:

ID           birth date             death date

AB36596      9112011               201131126

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы можете использовать read_fwf из пакета readr.

library(readr)
library(dplyr)

df <- read_fwf(file = "test.txt", fwf_widths(c(9, 7, 9))) %>%
  `colnames<-`(c("id", "birth date", "death date"))
df

Вывод:

  id        `birth date` `death date`
1 AB3659600      9112011    201131126

Пример данных:

test.txt с

AB365960091120112011311260000005311300000001ES020000040036ES1400N
0 голосов
/ 09 мая 2018

Вот решение на основе вашего примера:

Входные данные:

x<-"AB365960091120112011311260000005311300000001ES020000040036ES1400N"

Разделить строку в каждой переменной и добавить их в data.frame

df<-data.frame(ID=substr(x,1,7),
 birth_date=substr(x,10,16),
 death_date=substr(x,17,25))

Ваш желаемый результат

df
       ID birth_date death_date
1 AB36596    9112011  201131126

Используя тот же подход и функцию substr, вы сможете извлечь всю информацию.

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