将单列拆分为r中的多列

时间:2015-11-16 04:25:10

标签: r

我有两列数据,其中第一列是ID,第二列是值。例如

curl: (6) Could not resolve host: #deployment,
curl: (6) Could not resolve host: username
curl: (6) Could not resolve host: webhookbot,

我想将此列拆分为

ID  Value
1   0.5
2   30
3   20
4   11
5   21
6   12
1   15
2   18
3   19
4   10
5   14
6   1
1   6
2   30
3   2.5
4   3
5   45
6   5

到目前为止,我有以下代码,但我不知道如何分割它们。

ID  Value   value1  value2
1   0.5 15  6
2   30  18  30
3   20  19  2.5
4   11  10  3
5   21  14  45
6   12  1   5

1 个答案:

答案 0 :(得分:0)

我们可以使用data.table。我们将'data.frame'转换为'data.table'(setDT(df1)),按'ID'分组,我们创建一个序列列('ind'),然后从'long'创建dcast '宽'格式

library(data.table)#v1.9.6+
setDT(df1)[, ind:= 1:.N, ID]
dcast(df1, ID~paste0('value', ind), value.var='Value')
#   ID value1 value2 value3
#1:  1    0.5     15    6.0
#2:  2   30.0     18   30.0
#3:  3   20.0     19    2.5
#4:  4   11.0     10    3.0
#5:  5   21.0     14   45.0
#6:  6   12.0      1    5.0