2017-08-25 81 views
-2

我是一個新手編程。 當我將數據加載到R I發現:如何根據這些條件使用R來安排數據?

>str(g) 
data.frame': 253227 obs. of 2 variables: 

$ ID    : int 7896741 7896743 7896745 7896747 7896749 7896751 7896753 7896755 7896757 7896758 ... 
$ gene_assignment: Factor w/ 85855 levels "","---","AB001736 // IGLJ3 /// AB001733 // IGLJ3 /// ENST00000390609 // IGHV3-23 /// X14584 // IGHV3-23 /// BC072419 // "| __truncated__,..: 16002 81923 16018 2 2 2335 2 2392 5497 5497 ... 
  1. 我怎樣才能刪除兩大類;從$ gene_assignment( 「---」 「」)?我應該使用什麼類型的代碼?

  2. 「 AB001736 // IGLJ3 /// AB001733 // IGLJ3 /// ENST00000390609 // IGHV3-23 /// X14584 // IGHV3-23 /// BC072419 // "|

這個因素包含了許多參數,但也有一些共同喜歡ENST00000390609AB001733。我怎樣才能刪除這些值?

+0

[有條件地刪除數據幀行R]可能的重複(https://stackoverflow.com/questions/8005154/conditionally-remove-dataframe-rows-with-r) –

回答

0

我不確定你在問什麼,所以我只能解釋你想要做什麼。理想情況下,我會留下評論,但它告訴我需要50+聲望才能做到這一點。


所以,如果你想通過遺漏值(NAS),以取代兩個類別的因素變量,然後這應該工作:

data.frame$gene_assignment <- ifelse(data.frame$gene_assignment==...,NA,data.frame$gene_assignment) 

這裏......是目標值或類別的變量,NA是新值(缺失),剩下的是保持所有其他值和類別不變。

顯然,第二個問題可以使用相同的代碼。只需填寫目標值(當然是1)以及要替換的值。

您也可以以這種方式很容易地創建虛擬變量,如果這就是你想要的東西:

data.frame$dummy<-ifelse(data.frame$gene_assignment=...,1,0) 

如果你想刪除基於給定值的data.frame行(按列表) (例如「---」)的一個特定變量(例如$ gene_assignment),這個:data.frame[!(data.frame$gene_assignment=="---"),]或這個:subset(data.frame, gene_assignment!="---")應該做的伎倆。不過,你應該看你的新手。


希望這是有幫助的。

如果不是,並且萬一我誤解了您的問題,請看看您可以採取什麼措施來改進他們寫問題的方式。詳細信息是關鍵,「可重複的示例」(一些示例性數據)將使您更容易作出迴應併爲您提供更好的答案(請參閱here,herehere)。

+0

此外,你應該做一些研究之前提出問題這樣你就不會意外地複製現有的。看看這個[post](https://stackoverflow.com/questions/31331217/remove-values-in-vector-from-double-variable-in-r)和[this](https:// stackoverflow .com/questions/8005154/conditionally-remove-dataframe-rows-with-r)。 –

+0

@gene:我在這裏評論,因爲它不會讓我在你的「答案」下作家(我標記爲「不是答案」btw)。 **關於您的問題:**看起來像您嘗試在R中加載數據時發生的問題。確保指定列的正確分隔符(如在Excel表中使用的那樣)。默認情況下這是「,」但可以是別的。 'sep =「...」'會做到這一點。運行'?read.table'以獲取有關加載數據的更多信息。另外,對StackOverflow進行一些研究:有很多人有類似的問題很多聰明的解決方案。 –