Добавьте значение к каждой строке из другого кадра данных неравной длины - PullRequest
0 голосов
/ 18 января 2019

У меня есть следующие наборы данных:

DataSet1:

Class    Value
Yo       53
Save     13
Gold     72
Post     88

dataset2:

Class   Total_goals
Yo       9
Yo       9
Yo       9
Save     4
Save     4
Gold     7
Gold     7
Gold     7
Gold     7
Post     3
Post     3

Я хочу добавить Total_goals для каждого класса в dataset1 из второго набора данных.

Ожидаемый результат будет:

Class    Value     Total_goals
Yo       53        9
Save     13        4
Gold     72        7
Post     88        3

Как я могу это сделать?

1 Ответ

0 голосов
/ 18 января 2019

Используйте cbind , это будет работать независимо от того, есть ли у вас совпадающая переменная между наборами данных или нет. Предполагается, что уровни наблюдения одинаковы (т. Е. В порядке) между кадрами данных.

Создайте свои фреймы данных:

dataset1 = data.frame(c("yo","save","gold", "post"),c(53,13,72,88))
colnames(dataset1) = c("Class","Value")

dataset2 = data.frame(c("yo","save","gold", "post"),c(9,4,7,3))
colnames(dataset2) = c("Class","Total_goals")

Ответ:

dataset1 = cbind(dataset1, dataset2$Total_goals)
colnames(dataset1) = c("Class","Value","Total_goals")

* Отредактировано для отображения дополнительной информации (т. Е. Дублирующейся информации во втором кадре данных), требуется соответствующая переменная *

Решение, если кадры данных имеют неодинаковую длину с кадром, содержащим повторяющиеся данные.

Создайте свои фреймы данных:

dataset1= data.frame(c("yo","save","gold", "post"),c(53,13,72,88))
colnames(dataset1) = c("Class","Value")

dataset2 = data.frame(c("yo","save","gold", 
"post","post","gold"),c(9,4,7,3,3,7))
colnames(dataset2) = c("Class","Total_goals")

Ответ:

dataset1$Total_goal = dataset2[match(dataset1$Class, dataset2$Class),2]
colnames(dataset1) = c("Class","Value","Total_goals")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...