1

this ought to be easy but I cant find the correct way to do it.

jk <- data.frame(j=c("a","b","a","b"),val=c(1,3,2,1))

I´d like dcast to return two columns a and b with {1,2} and {3,1} respectively.

Misha
  • 3,114
  • 8
  • 39
  • 60

1 Answers1

4

In base R, we can use unstack

unstack(jk, val ~ j)

-output

#  a b
#1 1 3
#2 2 1

If we use dcast, create a sequence column because there are duplicates for 'j'

library(data.table)
dcast(setDT(jk), rowid(j) ~ j, value.var = 'val')[, j := NULL][]

-output

#  a b
#1: 1 3
#2: 2 1
akrun
  • 874,273
  • 37
  • 540
  • 662