分解する必要がある遺伝学と呼ばれる大きなデータセットがあります。 4つの列があります。最初の列は、重複する場合がある患者IDと、患者を説明する3つの列です。
前に述べたように、患者IDの一部は重複しており、残りの列を失うことなく、どのIDかを知りたいのです。
dedupedGenID<- unique(Genetics$ID)
列なしで、一意のIDのみを取得します。
私がしたそれらの一意のIDでdfをサブセット化するために
dedupedGenFull <- Genetics[str_detect(Genetics$patientID, pattern=dedupedGenID,]
これにより、「長いオブジェクトの長さは短いオブジェクトの長さの倍数ではない」というエラーが発生し、dedupedGenFullには55行しかありませんが、dedupedGenIDは1837の文字ベクトルです。
私の質問は次のとおりです。サブセット化の手順を正しく実行するにはどうすればよいですか?どうすれば同じことができますか?乗算されます、つまり、どのようにdfをサブセット化して、繰り返す患者のIDと他の列を取得するのですか?
どんな考えでもいただければ幸いです。
回答 2 件
library(data.table) genetics <- data.table(genetics) genetics[,':='(is_duplicated = duplicated(ID))]
このチャンクはデータからdata.tableを作成し、IDが重複している場合はTRUEを、そうでない場合はFALSEを含む新しい列を追加します。ただし、重複するものだけをマークします。つまり、最初のものはFALSEとしてマークされます。
関連記事
- 優先度に基づいてデータフレーム列をマップする
- Rで引用符とコンマを使用して文字列のベクトルを区切る
- 日付範囲の変更に基づいてRデータフレームを自動的にサブセット化する
- 文字のベクトルからデータフレームにダミー変数を作成するにはどうすればよいですか?
- ローリングウィンドウルックアップに基づいてPandaデータフレームに列を追加するにはどうすればよいですか?
- 3番目の列の共有IDに基づいて、あるデータフレームからデータを取得し、それを別のデータフレームの既存の列にコピーする方法
- 別のデータフレームの一致条件に基づいて、Rのデータフレームに列を追加する
- 別の列に基づいてデータフレームの列の値の平均を取得するにはどうすればよいですか?
- リストからの入力に基づいてパンダデータフレームにタグを付ける
- 文字列に基づいてRデータフレームのテキストを分割する
使用できます
duplicated
取得するためID
乗算され、それを使用してsubset
データ別のアプローチは、行数を
ID
1より大きい行を選択します。これはベースRで行うことができます:
dplyr
そして
data.table