У меня 2 кадры данных следующим образом:Как объединить два кадра данных в R (см. Подробности)?
df <- data.frame(frames = 1:10,
X1 = c(0,0,0,10,10,10,10,15,15,15),
X2 = c(0,0,0,15,15,15,15,10,10,10),
X3 = rep(0,10),
X4 = rep(0,10),
X5 = rep(0,10))
Где
frames
= Время номер кадра
X1, X2, ..., X5
содержит уникальный идентификационный номер транспортных средств. В любой момент времени X1
является ближайшим к пользователю (водитель в симуляторе вождения), X2
является ** второй ближайшей ** к пользователю и так далее. Например, в пункте frames
5 транспортное средство № 10 находится ближе всего к X1
, а транспортное средство № 15 - второе. Других транспортных средств вокруг пользователя не было, поэтому столбцы X3
через X5
содержат нуль.
ПОЖЕРТВОВАТЬ ВНИМАНИЕ:df
не имеет позиции; вместо этого он имеет идентификационный номер транспортного средства. Таким образом, 0 означает отсутствие транспортного средства, 10 и 15 являются идентификаторами автомобиля 10 и ID 15. Они не находятся в последовательности, и цифры не имеют значения, поэтому 10 не являются 10 футами или десятым транспортным средством, это всего лишь идентификатор. Я бы предпочел A, B, ... но я получаю данные в формате идентификационных номеров. И да, я хочу рассматривать 0 как НС.
Второй кадр данных имеет аналогичную структуру, но содержит скорость транспортных средств вместо идентификаторов:
df1 <- data.frame(frames = 1:10,
X1 = c(0.00,0.00,0.00,14.53,14.90,14.73,14.60,13.90,14.10,14.90),
X2 = c(0.00,0.00,0.00,12.57,12.80,13.10,13.60,14.65,14.70,14.79),
X3 = rep(0.00,10),
X4 = rep(0.00,10),
X5 = rep(0.00,10))
Пример: На frames
5, скорость транспортного средства # 10 был 14,90 м/с, и что из автомобиля # 15 - 12,80 м/с.
Что я хочу делать?
Я хочу объединить эти 2 кадры данных, чтобы создать новый, который выглядит следующим образом:
> df.final
ID frames speed
1 10 4 14.53
2 10 5 14.90
3 10 6 14.73
4 10 7 14.60
5 10 8 14.65
6 10 9 14.70
7 10 10 14.79
8 15 4 12.57
9 15 5 12.80
10 15 6 13.10
11 15 7 13.60
12 15 8 13.90
13 15 9 14.10
14 15 10 14.90
Как я могу добиться этого? Я прочитал учебник tidyr
пакета, но до сих пор не могу понять, как сделать
Просто чтобы прояснить, кажется, что хотя ваши исходные фреймы данных 'df' и' df1' настроены для предоставления некоторой информации о позиции каждого транспортного средства относительно водителя, эта информация не интересует вас в вашем окончательном кадре данных? Кроме того, вы хотите обрабатывать 0 в идентификаторе транспортного средства или переменных скорости как NA, правильно? – tsurudak
@tsurudak Спасибо за ваш ответ. 'df' не имеет позиции; вместо этого он имеет идентификационный номер транспортного средства. Таким образом, 0 означает отсутствие транспортного средства, 10 и 15 являются идентификаторами автомобиля 10 и ID 15. Они не находятся в последовательности. И да, я хочу рассматривать 0 как НС. –