【问题标题】:Selecting rows, create separate datasets according to rows选择行,根据行创建单独的数据集
【发布时间】:2019-10-22 17:57:34
【问题描述】:

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

# 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

提前致谢!!

【问题讨论】:

    标签: r dataframe tidyverse


    【解决方案1】:

    可能我们需要通过'Input.image_url'和split创建一个序列列,基于它到listdata.frames

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

    或者更简洁地使用来自data.tablerowid

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

    【讨论】:

    • 这很完美。我使用了更紧凑的解决方案 data.table !谢谢!!
    猜你喜欢
    • 2020-10-28
    • 2010-09-08
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    相关资源
    最近更新 更多