从R中的表中删除行

时间:2017-02-23 08:05:11

标签: r data-manipulation rbind

我使用以下代码将表格刮入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"或者"传递"。

有没有办法运行一个解析表的函数,识别符合上述条件的行,并消除它们?

2 个答案:

答案 0 :(得分:0)

关于

  

我希望消除的是:第3列中的值为" Cmp"或者"传递"。

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

答案 1 :(得分: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