2017-02-23 41 views
0

表卸下行我用下面的代码来刮表成R.从R中

player.offense.201702050atl = comments.201702050atl[31] %>% html_text() %>% read_html() %>% html_node("#player_offense") %>% html_table() 

然后改变使用的列标签:

colnames(player.offense.201702050atl) = c("Player", "Tm", "Cmp.Passing", "Att.Passing", "Yds.Passing", "TD.Passing", "Int.Passing", "Sk.Passing", "Yds.Sk.Passing", "Lng.Passing", "Rate.Passing", "Att.Rushing", "Yds.Rushing", "TD.Rushing", "Lng.Rushing", "Tgt.Receiving", "Rec.Receiving", "Yds.Receiving", "TD.Receiving", "Lng.Receiving", "Fmb.Fumbles", "FL.Fumbles") 

接下来,我需要消除的行1 ,11和12

我可以使用:

player.offense.201702050atl.a = player.offense.201702050atl[2:10, ] 
player.offense.201702050atl.b = player.offense.201702050atl[13:20, ] 
player.offense.201702050atl.c = rbind(player.offense.201702050atl.a, player.offense.201702050atl.b) 

但是,我有多个表需要类似的操作;而且,我打算消除的行因每个而不同。我希望消除的行的标准是:

列3中值为“Cmp”或“Passing”的所有行。

有没有办法运行一个函数来分析表,标识满足上述条件的行并将其消除?

+1

你可以删除线,负。 'df [-c(1,11,12)]'' –

回答

0
df <- data.frame(x = c('a', 'b', 'c'), y = c('ca', 'cb', 'cc'), z=c('da', 'db', 'dc')) 
    x y z 
1 a ca da 
2 b cb db 
3 c cc dc 
df[-union(which(df$y == 'cc'),which(df$y == 'ca')),] 
Result: 
    x y z 
2 b cb db 
0

关于

我欲望消除是:针对所有行第3列中的值是“CMP”或“传递”。

df <- data.frame(col1 = 1:3, col2 = c('Cmp', 'Passing', 'other')) 
df[!df$col2 %in% c('Cmp', 'Passing'), ]