Split dataframe based on value in column - loop over list of id's

longlivebrew

I'm trying to split a dataframe based on values in the id column.

what I have:

ids<-as.data.frame(c("a","a","a","b","b","b","c","c","c"))
unique_id<-unique(ids)
values<-as.data.frame(rep(1:3,3))
df<-as.data.frame(cbind(ids,values))
colnames(df)<-c("id","values")

and it looks like:

> df
  id values
  a      1
  a      2
  a      3
  b      1
  b      2
  b      3
  c      1
  c      2
  c      3

the code and error I'm getting is:

> for(id in unique_id){
+     paste0("value_for_",id)<-split(df, id = df$id)
+ }
Error in deparse(...) : 
  unused argument (id = c(1, 1, 1, 2, 2, 2, 3, 3, 3))

what I want:

 value_for_a
  id value
  a     1
  a     2
  a     3

 value_for_b
  id value
  b     1
  b     2
  b     3

 value_for_c
  id value
  c     1
  c     2
  c     3

I feel this should be fairly straightforward, but I'm fresh out of ideas. I am not opposed to using more sophisticated methods than a for loop.

InfiniteFlash

You can use nest() for this.

library(tidyr)
df%>%
group_by(id)%>%
nest()

# A tibble: 3 x 2
  id     data            
  <fctr> <list>          
1 a      <tibble [3 x 1]>
2 b      <tibble [3 x 1]>
3 c      <tibble [3 x 1]>

Each tibble contains the values you're interested in.

df%>%
group_by(id)%>%
nest()%>%
.$data


[[1]]
# A tibble: 3 x 1
  values
   <int>
1      1
2      2
3      3

[[2]]
# A tibble: 3 x 1
  values
   <int>
1      1
2      2
3      3

[[3]]
# A tibble: 3 x 1
  values
   <int>
1      1
2      2
3      3

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Split a large dataframe into a list of data frames based on common value in column

From Dev

SAS - Split single column into two based on value of an ID column

From Dev

Split a dataframe column's list into two dataframe columns

From Dev

split dataframe and write new csv's based on loop

From Dev

split dataframe and write new csv's based on loop

From Dev

Loop over object and display value into list based on option choice

From Dev

Loop over object and display value into list based on option choice

From Java

Simpler R code for adding value column to dataframe based on ID column

From Dev

Split rows into different sheets based on a column's value in Excel

From Dev

Split/Group pandas DataFrame by row, according to column's value continuity

From Dev

Split a row based on a column value

From Dev

Create new column in Pandas dataframe based on latest value per ID

From Java

Pandas split DataFrame by column value

From Dev

Remove element from list in pandas dataframe based on value in column

From Dev

split List of values based on value

From Java

Dropping rows from pandas dataframe based on value in column(s)

From Dev

Transpose dataframe based on column list

From Dev

Split pandas dataframe column based on number of digits

From Dev

Split/Expand Dataframe based on column values

From Dev

How to split a pandas dataframe based on column prefix

From Dev

Split dataframe in half based on a column in R

From Dev

Loop over file list into dictionary; based on string

From Dev

Loop over Pandas dataframe to populate list (Python)

From Dev

Loop over Pandas dataframe to populate list (Python)

From Dev

Split a dataframe based on a specifc cumsum value

From Dev

Split list in Pandas dataframe column into multiple columns

From Dev

Split numpy recarray based on value in one column

From Dev

Split numpy recarray based on value in one column

From Dev

split data based on cumulative value of column in r

Related Related

  1. 1

    Split a large dataframe into a list of data frames based on common value in column

  2. 2

    SAS - Split single column into two based on value of an ID column

  3. 3

    Split a dataframe column's list into two dataframe columns

  4. 4

    split dataframe and write new csv's based on loop

  5. 5

    split dataframe and write new csv's based on loop

  6. 6

    Loop over object and display value into list based on option choice

  7. 7

    Loop over object and display value into list based on option choice

  8. 8

    Simpler R code for adding value column to dataframe based on ID column

  9. 9

    Split rows into different sheets based on a column's value in Excel

  10. 10

    Split/Group pandas DataFrame by row, according to column's value continuity

  11. 11

    Split a row based on a column value

  12. 12

    Create new column in Pandas dataframe based on latest value per ID

  13. 13

    Pandas split DataFrame by column value

  14. 14

    Remove element from list in pandas dataframe based on value in column

  15. 15

    split List of values based on value

  16. 16

    Dropping rows from pandas dataframe based on value in column(s)

  17. 17

    Transpose dataframe based on column list

  18. 18

    Split pandas dataframe column based on number of digits

  19. 19

    Split/Expand Dataframe based on column values

  20. 20

    How to split a pandas dataframe based on column prefix

  21. 21

    Split dataframe in half based on a column in R

  22. 22

    Loop over file list into dictionary; based on string

  23. 23

    Loop over Pandas dataframe to populate list (Python)

  24. 24

    Loop over Pandas dataframe to populate list (Python)

  25. 25

    Split a dataframe based on a specifc cumsum value

  26. 26

    Split list in Pandas dataframe column into multiple columns

  27. 27

    Split numpy recarray based on value in one column

  28. 28

    Split numpy recarray based on value in one column

  29. 29

    split data based on cumulative value of column in r

HotTag

Archive