重新加入数据框中的顺序记录行
Rejoin sequential record rows in dataframe
我正在处理一个数据集,其中的记录行被一分为二。
我当前使用的数据如下所示:
df <- data.frame(
row_id = 1:10,
V1 = c("burger", "01-01-2016", "chicken patty", "01-02-2016", "veggie burger", "01-03-2016", "turkey burger", "01-01-2016", "veggie burger", "01-02-2016"),
V2 = c("cheese", "very tasty", "onions", "ok", NA, "tasty", "cheese", "ok", "onions", NA),
V3 = c("bun", NA, "wrap", NA, "bun", NA, "wrap", NA, NA, NA)
)
row_id V1 V2 V3
1 burger cheese bun
2 01-01-2016 very tasty NA
3 chicken patty onions wrap
4 01-02-2016 ok NA
5 veggie burger NA bun
6 01-03-2016 tasty NA
7 turkey burger cheese wrap
8 01-01-2016 ok NA
9 veggie burger onions NA
10 01-02-2016 NA NA
但是,我需要将适当的记录行组合在一起,
让我的数据看起来像这样:
row_id V1 V2 V3 V4 V5
1 burger cheese bun 01-01-2016 very tasty
2 chicken patty onions wrap 01-02-2016 ok
3 veggie burger NA bun 01-03-2016 tasty
4 turkey burger cheese wrap 01-01-2016 ok
5 veggie burger onions NA 01-02-2016 NA
我考虑过在附加前一行的地方做点什么。但是,我不知道我将如何写这样一个过程。
我目前正在使用 dplyr 库,因此使用 dplyr 发布的任何回复都会格外有用。
我们可以 cbind()
偶数行和非偶数行并删除不相关的列:
cbind(df[c(TRUE, FALSE), -1], df[c(FALSE, TRUE), -c(1, 4)])
V1 V2 V3 V1 V2
1 burger cheese bun 01-01-2016 very tasty
3 chicken patty onions wrap 01-02-2016 ok
5 veggie burger <NA> bun 01-03-2016 tasty
7 turkey burger cheese wrap 01-01-2016 ok
9 veggie burger onions <NA> 01-02-2016 <NA>
我正在处理一个数据集,其中的记录行被一分为二。
我当前使用的数据如下所示:
df <- data.frame(
row_id = 1:10,
V1 = c("burger", "01-01-2016", "chicken patty", "01-02-2016", "veggie burger", "01-03-2016", "turkey burger", "01-01-2016", "veggie burger", "01-02-2016"),
V2 = c("cheese", "very tasty", "onions", "ok", NA, "tasty", "cheese", "ok", "onions", NA),
V3 = c("bun", NA, "wrap", NA, "bun", NA, "wrap", NA, NA, NA)
)
row_id V1 V2 V3
1 burger cheese bun
2 01-01-2016 very tasty NA
3 chicken patty onions wrap
4 01-02-2016 ok NA
5 veggie burger NA bun
6 01-03-2016 tasty NA
7 turkey burger cheese wrap
8 01-01-2016 ok NA
9 veggie burger onions NA
10 01-02-2016 NA NA
但是,我需要将适当的记录行组合在一起, 让我的数据看起来像这样:
row_id V1 V2 V3 V4 V5
1 burger cheese bun 01-01-2016 very tasty
2 chicken patty onions wrap 01-02-2016 ok
3 veggie burger NA bun 01-03-2016 tasty
4 turkey burger cheese wrap 01-01-2016 ok
5 veggie burger onions NA 01-02-2016 NA
我考虑过在附加前一行的地方做点什么。但是,我不知道我将如何写这样一个过程。
我目前正在使用 dplyr 库,因此使用 dplyr 发布的任何回复都会格外有用。
我们可以 cbind()
偶数行和非偶数行并删除不相关的列:
cbind(df[c(TRUE, FALSE), -1], df[c(FALSE, TRUE), -c(1, 4)])
V1 V2 V3 V1 V2
1 burger cheese bun 01-01-2016 very tasty
3 chicken patty onions wrap 01-02-2016 ok
5 veggie burger <NA> bun 01-03-2016 tasty
7 turkey burger cheese wrap 01-01-2016 ok
9 veggie burger onions <NA> 01-02-2016 <NA>