如何在这些条件下使用R来安排数据?

时间:2017-08-25 11:13:21

标签: r if-statement subset

我是编程新手。 当我将数据加载到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 // "|

  3. 此因素包含许多参数,但有些参数很常见,如ENST00000390609AB001733。如何删除这些值?

1 个答案:

答案 0 :(得分:0)

我不确定你在问什么,所以我只能解释你想做什么。理想情况下,我会留下评论,但它告诉我需要50多个声誉才能做到这一点。

所以,如果你想用缺失值(NA)替换你的因子变量的两个类别,那么这应该有效:

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)

如果要根据特定变量(例如$ gene_assignment)的给定值(例如“---”)从data.frame中删除行(listwise),请执行以下操作:data.frame[!(data.frame$gene_assignment=="---"),]或者: subset(data.frame, gene_assignment!="---")应该做到这一点。不过,你应该看看你的NAs。

希望这有用。

如果没有,如果我误解了你的问题,请看看你可以做些什么来改善他们写问题的方式。细节是关键,“可重复的示例”(一些示例性数据)将使您更容易回复并为您提供更好的答案(请参阅hereherehere)。< / p>