选择行,根据行创建单独的数据集

时间:2019-10-22 17:57:34

标签: r dataframe tidyverse

我有一个像这样的数据集。

# A tibble: 6 x 39
  AssignmentId WorkerId Input.image_url Answer.action1.… Answer.action2.… Answer.comments Answer.gaze1.ga… Answer.gaze2.ga…
  <chr>        <chr>    <chr>                      <int>            <int>           <int>            <int>            <int>
1 30MVJZJNHNI… AW13W4W… 450.png                        0                0              NA                0                0
2 3BDCF01OGYZ… A253S5S… 450.png                        0                1              NA                1                0
3 3U0SRXB7CEA… A3GIXRS… 450.png                        1                1              NA                1                0
4 3D4CH1LGEBY… A1SK0GV… 1141.png                       1                0              NA                1                0
5 3MTMREQS4WN… AK0R311… 1141.png                       1                0               0                0                1
6 3WMOAN2SRC2… A11FQTH… 1141.png                       1                0              NA                0                0

基本上,我想做的是根据Input.image.url变量获取行并创建单独的数据集。选择每个唯一Input.image.url变量的第一行并将其组合。因此,将有三个具有此类行的数据集。

> head(first_half_2)
# A tibble: 6 x 39
  AssignmentId WorkerId Input.image_url Answer.action1.… Answer.action2.… Answer.comments Answer.gaze1.ga… Answer.gaze2.ga…
  <chr>        <chr>    <chr>                      <int>            <int>           <int>            <int>            <int>
1 3UOUJI6MTEJ… A1OYE3D… 450.png                        1                0              NA                1                0
2 3OVHNO1VE76… ALWYZOT… 1141.png                       0                1             114                0                1
3 3WI0P0II62X… A2BSMM8… 1039.png                       0                1              25                1                0
4 3UXUOQ9OKF2… A1RK4PG… 1067.png                       0                0              NA                0                0
5 3JPSL1DZ5T4… A1RK4PG… 111.png                        0                0              NA                0                0
6 35LDD5557B9… A253S5S… 1141.png                       1                0              NA                1                0

提前谢谢!

1 个答案:

答案 0 :(得分:3)

也许我们需要通过'Input.image_url'和splitlist s中的data.frame的基础上创建一个序列列

grp <- with(first_half_2, ave(seq_along(Input.image_url), 
      Input.image_url, FUN = seq_along))
lst1 <- split(first_half_2, grp)

或更紧凑地使用rowid中的data.table

library(data.table)
split(first_half_2, rowid(first_half_2$Input.image_url))