に見出さ集計列のR和、Iは、列を作成する必要がある、などnumSpecial:別の列このデータを、最初の4列(行ID、注文、ライン、特別)指定
rowid order line special numSpecial
1 A 01 X 1
2 B 01 0
3 B 02 X 2
4 B 03 X 2
5 C 01 X 1
6 C 02 0
numSpecial注文ラインが特別なものであれば特別な(値= X)各注文の回数を合計することによって決定されます。それ以外の場合は0です。
私は最初に単に '注文' 'X'、それをorderXと呼びます。
orderX
AX
BX
BX
BX
CX
CX
はその後orderx順番特別&の合計を実行します。私は、試してみました
numSpecial
4
4
4
4
4
4
:
df$numSpecial <- sum(paste(order, special, sep = "") %in% orderx)
しかし、それdoesntの仕事は、それはすべての注文のためにすべての行の結果の合計を返します。 as.data.tableを使用していますが、期待される結果が得られません:
as.data.table(mydf)[, numSpecial := sum(paste(order, special, sep = "") %in% orderx), by = rowid]
ただし、これは各行に対して1つだけ戻っています合計ではありません。
numSpecial
1
0
1
1
1
0
ここで私はこれらに間違っていますか?そのorderX列を作成する必要はないと思いますが、この数を正しく取得する方法はわかりません。これは、簡単に実行できるExcelのcountifに似ています。ベースRを使用して
ライブラリ(dplyr)。 ' – eipi10
もう一つの意味がありますが、私がこれを試してみたときには、上記の私の2つの試みの組み合わせを得た、すなわちnumSpecialは結果として[4,0,4,4,4,0]を持っていた。 –