【发布时间】:2018-07-30 15:52:42
【问题描述】:
我有一个有两列的tibble。每列包含有序的纬度、经度对。结构如下:
library(dplyr)
library(tidyr)
> my_df
# A tibble: 3 x 2
V1 V2
<list> <list>
1 <dbl [2]> <dbl [2]>
2 <dbl [2]> <dbl [2]>
3 <dbl [2]> <dbl [2]>
my_df = structure(list(V1 = list(c(44.0252714, -88.1536451), c(42.9856117,
-87.9355419), c(42.8600366, -87.9541568)), V2 = list(c(44.9535298,
-90.9188588), c(45.4864422, -89.7339536), c(43.0743635, -87.9765372
))), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"
))
我想把它变成一个四列的数据框,看起来像:
> my_df2
y1 x1 y2 x2
1 44.02527 -88.15365 44.95353 -90.91886
2 42.98561 -87.93554 45.48644 -89.73395
3 42.86004 -87.95416 43.07436 -87.97654
我曾尝试使用tidyr 中的unnest,但没有成功。
> my_df %>% unnest()
# A tibble: 6 x 2
V1 V2
<dbl> <dbl>
1 44.0 45.0
2 -88.2 -90.9
3 43.0 45.5
4 -87.9 -89.7
5 42.9 43.1
6 -88.0 -88.0
> my_df %>% unnest(V1, V2)
# A tibble: 6 x 2
V1 V2
<dbl> <dbl>
1 44.0 45.0
2 -88.2 -90.9
3 43.0 45.5
4 -87.9 -89.7
5 42.9 43.1
6 -88.0 -88.0
我需要以某种方式控制取消嵌套的发生方式,但我不知道如何去做。
【问题讨论】:
-
使用基数 r
cbind(reduce(my_df[[1,]],rbind),reduce(my_df[[2,]],rbind))