【发布时间】:2020-11-02 15:33:27
【问题描述】:
我有两个这样的数据集:
training.csv
last_name ob1 ob2
Adam 2:01 2:02
Barry, S 3:30 2:50
Barry, D 2:45
Charlie 4:00
Don 2:00 1:50
Earl 2:50 2:30
Johnson, A 2:57 2:54
Johnson, T 3:15 3:10
和
racing.csv
last_name first_name 1mile-time 500m-time
Barry Sue 4:45 1:50
Don Regan 4:35 0:50
Earl Sage 4:50 1:30
Johnson Adam 4:37 1:54
Johnson Terry 4:50 2:10
所以我使用了merge(training, racing, by = "last_name", all = TRUE),但有些人有一个共同的姓氏。在共享姓氏的情况下,输入的姓氏和名字的首字母之间用逗号隔开。
另一件需要注意的重要事情是,并不是每个参加训练的人都能参加比赛。所以training.csv 中会有一些独特的名称,而racing.csv 中没有。
期望的输出
last_name first_name ob1 ob2 1mile-time 500m-time
Adam Bob 2:01 2:02
Barry, S Sue 3:30 2:50 4:45 1:50
Barry, D Derrick 2:45
Charlie Charles 4:00
Don Regan 2:00 1:50 4:35 0:50
Earl Sage 2:50 2:30 4:50 1:30
Johnson, A Adam 2:57 2:54 4:50 2:10
Johnson, T Terry 3:15 3:10 4:50 2:10
【问题讨论】:
-
我猜你正在寻找
all.x = TRUE作为参数。 -
大家好。感谢您的反馈。不,那个帖子没有回答我的问题。我更新了示例数据以更清楚地显示我所指的内容。没有直接的方法可以在单个列上加入数据,因此我可能需要一个 if..else... 来基于
last_name和first_name列加入。
标签: r csv dplyr etl data-cleaning