我是编程新手。 当我将数据加载到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 ...
如何从$ gene_assignment中删除两个类别("";" ---")?我应该使用什么类型的代码?
“ AB001736 // IGLJ3 /// AB001733 // IGLJ3 /// ENST00000390609 // IGHV3-23 /// X14584 // IGHV3-23 /// BC072419 // "|
此因素包含许多参数,但有些参数很常见,如ENST00000390609
或AB001733
。如何删除这些值?
答案 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。
希望这有用。
如果没有,如果我误解了你的问题,请看看你可以做些什么来改善他们写问题的方式。细节是关键,“可重复的示例”(一些示例性数据)将使您更容易回复并为您提供更好的答案(请参阅here,here和here)。< / p>