如果之前詢問過此問題,我不會感到驚訝,但是在我的搜索中找不到確切的問題。如何根據數據框中是否存在第二個數據框中的行來從數據框中刪除列?
我的數據包括兩個數據幀:
ID = c("patient1", "patient2", "patient3")
phenodf = as.data.frame(ID)
phenodf$status = c("sick", "healthy", "sick")
row.names(phenodf) = phenodf$ID
patient1 = c(1.5, 2.5, 3.5, 4.5)
genes = as.data.frame(patient1)
genes$patient2 = c(2.3, 1.3, 3.3, 4.3)
genes$patient3 = c(3.3, 3.1, 3.4, 3.6)
row.names(genes) = c("ABC", "A2B", "DE5", "ZXY")
#remove healthy patients
phenodf = subset(phenodf, status!=c("healthy"))
現在我需要從「基因」的數據幀刪除患者的健康,但什麼是這樣做的有效途徑?
到目前爲止,我一直在服用t(genes)
,合併數據幀以移除不存在於兩者中的患者,分割數據,修復行名,並再次使用t(genes)
- 但我確信有更好的辦法!
更新:感謝你們兩位,這些想法完美工作,比我一直在做的更好!
你還在尋找一個即興。 (關注,upvote)還是爲你完成? – BigDataScientist
是的,你的答案很棒,所以我選中了它。不知道爲什麼其他答案被刪除,因爲它也有幫助。 – CineyEveryday
他錯過了一些,但是我同意它總是很有趣,看到不同的方法 – BigDataScientist