1
私はデータフレームdata
を次のように持っています。 によれば、列c1
とc2
の値の差を列v1
,v3
およびv4
を効率的に使用してdata.table
を使用する方法の違いを取得するにはどうすればよいですか?他の列に従ってdata.tableの行を取得する
data <- data.frame(index = c("A", "B", "C", "D", "C", "A", "D", "B"),
class = c(rep("c1", 4), rep("c2", 4)),
v1 = c(21,85,74,96,55,77,21,34),
v3 = c(77,41,91,85,22,74,36,41),
v4 = c(41,58,24,36,84,24,74,11))
setDT(data)
data[, index := as.factor(index)]
data[, class := as.factor(class)]
index class v1 v3 v4
1: A c1 21 77 41
2: B c1 85 41 58
3: C c1 74 91 24
4: D c1 96 85 36
5: C c2 55 22 84
6: A c2 77 74 24
7: D c2 21 36 74
8: B c2 34 41 11
所望の出力が
out <- data.frame(index = data[1:4]$index,
v1 = data[1:4]$v1 - data[5:8]$v1,
v3 = data[1:4]$v3 - data[5:8]$v3,
v4= data[1:4]$v4 - data[5:8]$v4)
out
index v1 v3 v4
1 A -56 3 17
2 B 51 0 47
3 C 19 69 -60
4 D 75 49 -38