2017-08-25 45 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进行一些研究:有很多人有类似的问题很多聪明的解决方案。 –