2017-02-23 9 views
0

verwendete ich den folgenden Code, um eine Tabelle in R.Entfernen Zeilen aus einer Tabelle in R

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

dann die Spaltenbeschriftungen geändert zu kratzen mit:

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") 

Weiter Ich brauche Zeilen zu beseitigen 1 , 11 und 12.

konnte ich verwenden:

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) 

Ich habe jedoch mehrere Tabellen, die ähnliche Manipulationen benötigen; und die Reihen, die ich eliminieren will, variieren mit jedem. Das Kriterium für eine Zeile, die ich eliminieren möchte, ist:

Alle Zeilen, für die der Wert in Spalte 3 entweder "Cmp" oder "Passing" ist.

Gibt es eine Möglichkeit, eine Funktion auszuführen, die die Tabelle analysiert, die Zeilen identifiziert, die die obigen Kriterien erfüllen, und sie zu beseitigen?

+1

Sie können Linien mit minus entfernen. 'df [-c (1,11,12),]' –

Antwort

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

Bezug

I eliminiert Wunsch ist: Alle Zeilen, für die der Wert in der Spalte 3 ist entweder "CMP" oder "Übergabe".

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