サブセット化し、最終的にプロットを作成するために使用したいマトリックスがあります。データは、集団内の各患者の特定の血液マーカーのカウントのリストです。次のようになります。
df <- data.frame(MarkerID=c("Class","A123","A124"),
MarkerName=c("","X","Y"),
Patient.1=c(0,1,5),
Patent.2=c(1,2,6),
Patent.3=c(0,3,7),
Patient.4=c(1,4,8))
クラス値がゼロ(1行目)のすべての患者(列3〜6)のデータフレームと、クラス値が1のすべての患者の2番目のデータフレームを作成したいと思います。
過去に、サブセット関数を使用して列の値に基づいて行を選択しましたが、行の値に基づいて列のサブセットを選択することは可能ですか?
私はこれを試しました:
x <- subset(data, data[1,] == 0)
ただし、dim(x)
列の数は同じですdim(data)
が、行の数は異なります。行1の値が0の列だけを返すようにする方法についてのアイデアはありますか?
ローランド はい。あなたは例です df は、データフレームがどのように見えるかです。データ フレームには最大 30,000 のマーカーと 400 人を超える患者が含まれているため、dput(head(data))
. 再形成のヒントをありがとう、私はそれを試してみます。
あなたのコード例は、行に基づいて列をサブセット化するために機能しました
data[,c(TRUE,TRUE,data[1,-(1:2)]==1)]
データでは、すべての行と指定されたクラスの列のみを含むデータ フレームを取得できました。