我有两列数据,其中第一列是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
答案 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