如何使用R将矢量拆分为列

时间:2015-04-16 23:47:35

标签: r

我有以下数据

device  usage
a   10
a   20
b   30
b   14
c   90
c   80
c   66

如何将其转换为下方?

device V1 V2 V3
a 10 20
b 30 14
c 90 80 66

我使用ddply(ds,~device,paste)将其转换为

a,c(10,20)

b,c(30,14)

c,c(90,80,66) 

如何将矢量拆分为列。或者欢迎其他方法

1 个答案:

答案 0 :(得分:2)

您可以添加新列并将其用于reshape。调用原始数据框x

> x$V <- ave(as.numeric(x$device), x$device, FUN=seq_along)
> reshape(x, direction="wide", timevar='V', idvar='device')
  device usage.1 usage.2 usage.3
1      a      10      20      NA
3      b      30      14      NA
5      c      90      80      66

添加的列V计算每个唯一设备的出现次数,这些设备在数据框中不需要是连续的。这用于重塑timevar