[英]Update a subset of values in data.table column with values from another data.table column
[英]Combining different column values in data.table from a table to form row values of another table
我有下表DT-1。 列代表不同的状态
id col1 col2 col3 col4 col5 col6
qw-1 ABC XYZ QRT RWQ OIP KIJ
qw-2 WET ERT YUP TIP IUR ETY
qw-3 QRT ERT RWQ YUP 0 0
qw-4 XYZ QRT RWQ 0 0 0
qw-5 YUP 0 0 0 0 0
我想形成另一个表DT-2,其中表中的行如下所示:
1 ABC XYZ
2 XYZ QRT
3 QRT RWQ
4 RWQ OIP
5 OIP KIJ
6 WET ERT
7 ERT YUP
8 YUP TIP
9 TIP IUR
10 IUR ETY
11 QRT ERT
12 RWQ YUP
13 XYZ QRT
14 QRT RWQ
15 YUP
第二表的第1-5行由第一表的第一行形成。 同样,第二个表格的第6-10、11-12、13-14和15行由表格1的第二,第三,第四和第五行组成。
是否有任何data.table方法或任何其他R包可以做到这一点?
我们可以转置数据集,删除第一个和最后一个元素,转换为向量,然后在data.frame
创建两列
library(data.table)
m1 <- t(setDF(DT1)[-1])
d1 <- data.frame(col1= c(m1[-length(m1)]), col2 = c(m1[-1]), stringsAsFactors=FALSE)
或者我们可以melt
然后通过操作分组
dN <- setDT(melt(t(DT1[-1])))[, .(col1 = value[-.N],
col2 = value[-1]), Var2][, Var2 := NULL][]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.