2017-03-04 5 views
0

で新しい変数を作成するときに列ラベルを参照:あなたが見ることができるように私はそうのようにRにデータフレームを掻き取ってきたR

page.201702050atl = read_html("http://www.pro-football-reference.com/boxscores/201702050atl.htm") 
comments.201702050atl = page.201702050atl %>% html_nodes(xpath = "//comment()") 
team.stats.201702050atl = comments.201702050atl[27] %>% html_text() %>% read_html() %>% html_node("#team_stats") %>% html_table() 
> team.stats.201702050atl 
           NWE   ATL 
1   First Downs   37   17 
2  Rush-Yds-TDs  25-104-2  18-104-1 
3 Cmp-Att-Yd-TD-INT 43-63-466-2-1 17-23-284-2-0 
4  Sacked-Yards   5-24   5-44 
5  Net Pass Yards   442   240 
6   Total Yards   546   344 
7  Fumbles-Lost   1-1   1-1 
8   Turnovers    2    1 
9  Penalties-Yards   4-23   9-65 
10 Third Down Conv.   7-14   1-8 
11 Fourth Down Conv.   1-1   0-0 
12 Time of Possession   40:31   23:27 
> str(team.stats.201702050atl) 
'data.frame': 12 obs. of 3 variables: 
$ : chr "First Downs" "Rush-Yds-TDs" "Cmp-Att-Yd-TD-INT" "Sacked-Yards" ... 
$ NWE: chr "37" "25-104-2" "43-63-466-2-1" "5-24" ... 
$ ATL: chr "17" "18-104-1" "17-23-284-2-0" "5-44" ... 

は、Rは、すでにラベル2番目と3番目の列でこのテーブルを掻き取ります。私はこれらの列に一般的なlablesを与えて、テーブルの中にc("", "NWE", "ATL")を移動して、私がそれを扱うことができるようにしたいと思います。さらに、テーブルに行を移動すると、空のセルを塗りつぶしたいと思います。言い換えれば、私はのようなもので終わるしたい:

> team.stats.201702050atl.a 
         V1   V2   V3 
    1     Tm   NWE   ATL 
    2   First Downs   37   17 
    3  Rush-Yds-TDs  25-104-2  18-104-1 
    4 Cmp-Att-Yd-TD-INT 43-63-466-2-1 17-23-284-2-0 
    5  Sacked-Yards   5-24   5-44 
    6  Net Pass Yards   442   240 
    7   Total Yards   546   344 
    8  Fumbles-Lost   1-1   1-1 
    9   Turnovers    2    1 
    10  Penalties-Yards   4-23   9-65 
    11 Third Down Conv.   7-14   1-8 
    12 Fourth Down Conv.   1-1   0-0 
    13 Time of Possession   40:31   23:27 

私はのような何か行うことができます知っている:

team.stats.201702050atl.a = as.data.frame(t(team.stats.201702050atl)) 
team.stats.201702050atl.a$r1 = c("Tm", "NWE", "ATL") 
team.stats.201702050atl = as.data.frame(t(team.stats.201702050atl.a)) 

を...しかし、どのように私はRが列を参照するように入手できますか明示的に入力せずに、team.stats.201702050atl $ V2とteam.stats.201702050atl $ V3のラベルを直接入力しますか?そして、その行の最初の列に自分のオリジナルテキストを挿入するにはどうしたらいいですか?

答えて

0

あなたは、たとえば、行と列の名前のベクトルを追加するrbindを使用することができ、移調する必要はありません。 "

team.stats.201702050atl2 <- rbind(c("Tm", "NWE", "ATL"), team.stats.201702050atl) 

か、直接COLNAMESを使用して列名をrbind、行方不明を追加TM」値:

team.stats.201702050atl2 <- rbind(colnames(team.stats.201702050atl), team.stats.201702050atl) 
team.stats.201702050atl2[1,1] <- "Tm" 

行と列名を参照すると?colnames?rownamesを参照してください。たとえば、索引付けによって特定の列名を参照できます。たとえば:

team.stats.201702050atl2 <- rbind(c("Tm", colnames(team.stats.201702050atl)[2:3]), team.stats.201702050atl) 

または変異体:

colnames(team.stats.201702050atl2) <- c("V1", "V2", "V3") 

team.stats.201702050atl2 <- rbind(c("Tm", colnames(team.stats.201702050atl)[2:ncol(team.stats.201702050atl)]), team.stats.201702050atl) 

最後に、使用して列名新しいCOLNAMESを割り当てるcolnames(team.stats.201702050atl2)[1]またはcolnames(team.stats.201702050atl2)[2:3]、これは別のアプローチを提供します

関連する問題