2011-05-11 101 views
0

我在R A初学者,我需要一些帮助:如何用while删除特定的行?

在我的数据库,非常大的,因为我与微观数据的工作,我想删除一些行的时候有一个列的特定值...我试图实现一些功能来做到这一点....但我遇到了IF条件的问题(真/假问题)。例如,我想删除第i行,当该行中的列DISC是“L”,然后我做了这样的功能:

dellinhas<-function(x){ 

    n<-nrow(x) 
    i<-1 
    while (i<=n) { 
    if (x[i,]$DISC=="L") {x<-x[-(i:i),]} 
    i<-i+1} 
    dadosPrmM<-x 
} 

哪里x是数据库。我究竟做错了什么?

回答

6

使用下标:

x[x$DISC != "L",] 

并尝试这个网站基本的数据操作问题:http://www.statmethods.net/

+0

我第二本。在R中,你很少发现自己在使用循环,通常你要么在列表上映射,要么使用(非常强大的)下标记号。 – Kyle 2011-05-11 01:26:10

+0

尊敬的维尔特,现在我有一个问题有关的大小condicion问,并且我只有一个。你有另一个想法???谢谢你! (x) – 2011-05-11 01:54:07

+0

Vicent ....我明白了....感谢网站,我用ifelse:dellinhas2 <-function(x){ n <-nrow(x) i <-1 while(i < = n){ ifelse(x [i,] $ a == 30,x <-x [ - (i:i),],x <-x) i <-i + 1} } – 2011-05-11 02:26:57