私はテーブルをきれいにしたいと思っていましたが、まだ私は[R]に新しいので、私ができることはかなり限られています。リストは実際にはかなり長く、約10万行ですが、手動で行うことは不可能です〜助けてください。文字列値の頻度をカウントするには(同じ列のいくつかのIDから)? [R]
テーブルの形式で非常に長いデータリストがあるとします。それぞれには "Publication.Code"と "Date"があります。コードはユニークで、日付は複製できます。それぞれのために、彼らは "タイプ"列の下に "名前"のリストを持っています。列「タイプで(E60R、E62D、F06Q、E30B、T60T、H04N、G01J、H12Nある)私は、それぞれの名前の第一4つのアルファベットを使用して新しい列を変異させたかった
Publication.Code Date Type
1 AC00069535742 2009-04-16 E62D 21/15;E60R 7/06;E60R 21/06;E62D 25/14
2 BB000069535652 2008-10-30 F06Q 10/
3 FV000069434701 2007-04-05 E30B 15/;E30B 15/16
4 RG000069534443 2006-07-06 E62D 21/15;E62D 25/14;T60T 7/06;E60R 21/06
5 MV000069333663 2006-02-23 H04N 1/1;G01J 3/51
6 KK000069533634 2006-02-23 H12N 9/1;H12N 15/54;H12P 9/
7 NQ000069534198 2006-02-16 H12N 15/54;H12N 15/7;H12N 1/21;H12N 9/1
「ちょうど以下のような名前のリストの中からその周波数をカウント:その後
Publication.Code Date E60R E62D F06Q E30B T60T H04N G01J H12N
1 AC00069535742 2009-04-16 2 2 1 0 0 0 0 0
2 BB000069535652 2008-10-30 0 0 1 0 0 0 0 0
3 FV000069434701 2007-04-05 0 0 0 2 0 0 0 0
4 RG000069534443 2006-07-06 1 2 0 0 1 0 0 0
5 MV000069333663 2006-02-23 0 0 0 0 0 1 1 0
6 KK000069533634 2006-02-23 0 0 0 0 0 0 0 3
7 NQ000069534198 2006-02-16 0 0 0 0 0 0 0 4
、私は多分によって、年によってそれを総括したいと思います:
Year E60R E62D F06Q E30B T60T H04N G01J H12N
1 2009 2 2 1 0 0 0 0 0
2 2008 0 0 1 0 0 0 0 0
3 2007 0 0 0 2 0 0 0 0
4 2006 1 2 0 0 1 1 1 7
私は列を変異し、年によって周波数をカウントする
dplyrを使用できることを理解しますが、私はちょうどから一定の値を抽出するかどうかはわかりません
Year E60R E62D F06Q E30B T60T H04N G01J H12N
1 2009 2 2 1 0 0 0 0 0
2 2008 2 2 2 0 0 0 0 0
3 2007 2 2 2 2 0 0 0 0
4 2006 2 4 2 2 1 1 1 7
:また
&各列の累積和コラム、本当にあなたがベクトルmyTypesにあなたのタイプを置く場合〜
colwise
で各列の使用cumsum
の累積値を計算するために第二部を解決しますあなたは(その場合、あなたはgrep' '使用することができます)タイプのリストを持っていますかあなたはデータからそれらを取り除かなければなりませんか? –
@RichardTelfordはい私は~~~ –
あなたのdata.frameで 'dput'を使うと、それは簡単に解決策をテストすることができます –