仅计算列相同值的最后一行的值
Computing value just for the last row of same value of column
我使用以下代码:
i1 <- SRC2[, Co:= as.character(round(sum(Exist)/.N, 2)) ,
sequenceID][, .I[1:(.N-1)], sequenceID]$v1
SRC2[i1, Co:= '']
SRC2
我想更改行代码,因此只有最后一次出现的 sequenceID
相同值才会包含 Co
值,而不是此代码中的所有行。
当前输出(每行都有值"Co"):
“
sequenceID" "transactionID" "eventID" "items" "Exist" "Co"
"1" 42207993 1577 1 "OV50" 1 0.67
"2" 42207993 6048 2 "OV11" 0 0.67
"3" 42207993 1597 3 "OV148" 1 0.67
"4" 57237976 12423 1 "OV46" 0 0.5
"5" 57237976 12589 2 "OV197" 1 0.5
需要的输出(只有同"sequenceID"的最后一行包含值"Co":
"sequenceID" "transactionID" "eventID" "items" "Exist" "Co"
"1" 42207993 1577 1 "OV50" 1
"2" 42207993 6048 2 "OV11" 0
"3" 42207993 1597 3 "OV148" 1 0.67
"4" 57237976 12423 1 "OV46" 0
"5" 57237976 12589 2 "OV197" 1 0.5
这是所需的代码:
library(data.table)
setDT(SRC2)
i1 <- SRC2[, Co:= as.character(round(sum(Exist)/.N, 2)) , sequenceID][, .I[1:(.N-1)], sequenceID]$V1
SRC2[i1, Co:= '']
SRC2
i1 的最后一部分必须包含 V1(大写字母)
我使用以下代码:
i1 <- SRC2[, Co:= as.character(round(sum(Exist)/.N, 2)) ,
sequenceID][, .I[1:(.N-1)], sequenceID]$v1
SRC2[i1, Co:= '']
SRC2
我想更改行代码,因此只有最后一次出现的 sequenceID
相同值才会包含 Co
值,而不是此代码中的所有行。
当前输出(每行都有值"Co"): “
sequenceID" "transactionID" "eventID" "items" "Exist" "Co"
"1" 42207993 1577 1 "OV50" 1 0.67
"2" 42207993 6048 2 "OV11" 0 0.67
"3" 42207993 1597 3 "OV148" 1 0.67
"4" 57237976 12423 1 "OV46" 0 0.5
"5" 57237976 12589 2 "OV197" 1 0.5
需要的输出(只有同"sequenceID"的最后一行包含值"Co":
"sequenceID" "transactionID" "eventID" "items" "Exist" "Co"
"1" 42207993 1577 1 "OV50" 1
"2" 42207993 6048 2 "OV11" 0
"3" 42207993 1597 3 "OV148" 1 0.67
"4" 57237976 12423 1 "OV46" 0
"5" 57237976 12589 2 "OV197" 1 0.5
这是所需的代码:
library(data.table)
setDT(SRC2)
i1 <- SRC2[, Co:= as.character(round(sum(Exist)/.N, 2)) , sequenceID][, .I[1:(.N-1)], sequenceID]$V1
SRC2[i1, Co:= '']
SRC2
i1 的最后一部分必须包含 V1(大写字母)