Отформатируйте данные отправления и назначения - PullRequest
0 голосов
/ 03 июня 2019

Я хотел бы изменить свои данные, как показано ниже.Надеюсь, вы можете мне помочь!

У меня есть эти данные:

Person, Trip,Destination
1, 1,Japan
1,2,US,
2,1,US
2,2, Japan
2,3, China

Я хотел бы получить эту таблицу:

Person, Trip,Origin, Destination
1,1,US, Japan
1,2,Japan, US,
2,1,China, US
2,2, US, Japan
2,3, Japan, China

Заранее спасибо

1 Ответ

0 голосов
/ 03 июня 2019

Мы используем данные, воспроизводимые в примечании в конце.Вопрос имеет пример вывода, но не объясняет, как он был рассчитан, поэтому мы просто предполагаем, что он определяется вращением Destination в группе Person.Сначала определите функцию rotation, а затем используйте ave, чтобы применить ее к каждой группе Person.Наконец, измените порядок столбцов в порядке, указанном в вопросе.Пакеты не используются.

rotate <- function(x) c(tail(x, 1), head(x, -1))
transform(DF, Origin = ave(Destination, Person, FUN = rotate))[c(1:2, 4:3)]

, что дает:

  Person Trip Origin Destination
1      1    1     US       Japan
2      1    2  Japan          US
3      2    1  China          US
4      2    2     US       Japan
5      2    3  Japan       China

Примечание

При удалении запятой в конце второй строки данных мы принимаем следующие данные:

Lines <- "Person, Trip,Destination
1, 1,Japan
1,2,US
2,1,US
2,2, Japan
2,3, China"
DF <- read.csv(text = Lines, strip.white = TRUE, as.is = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...