如何使用字符串作为对象名称来循环for循环

时间:2016-03-21 02:15:08

标签: r rbind

我有一些数据要根据行

中的列进行排序

看起来像这样:

   Rk         Player Pos Age  Tm  G   MP  PER   TS. X3PAr
1 492   Tyler Zeller   C  25 BOS 82 1731 18.9 0.594 0.000
2 491    Cody Zeller   C  22 CHO 62 1487 14.1 0.530 0.003
3 490 Thaddeus Young  PF  26 TOT 76 2434 15.7 0.507 0.119
4 490 Thaddeus Young  PF  26 MIN 48 1605 15.0 0.491 0.101
5 490 Thaddeus Young  PF  26 BRK 28  829 17.1 0.539 0.153
6 489     Nick Young  SG  29 LAL 42 1000 14.2 0.520 0.473

我试图做的是,当我遍历行时​​,将行分配给以'Tm'(团队)值命名的数据帧。因此,在第一次迭代期间,如果它不存在,请创建名为BOS的数据帧。下次看到Tm列等于BOS的行时,会将该行分配给数据框BOS

这是我到目前为止所做的:

for (i in 1:nrow(allPlayers)){

  row <- allPlayers[i,]
  teamName <- toString(allPlayers[i,'Tm'])


    if(!exists(teamName)){

        assign(teamName,data.frame())
      }
  assign(teamName,rbind(teamName,row))
}

但是,我在每个数据帧中获得的唯一值是该团队最后一次迭代的行。

我想要的是多个数据帧,所有他们的相应玩家都是这样的

BOS
492 Tyler Zeller    C   25  BOS 82  1731    18.9    0.594   0
488 James Young SG  19  BOS 31  332 8.5 0.457   0.647
485 Brandan Wright  PF  27  BOS 8   86  15  0.571   0

ATL
431 Jeff Teague PG  26  ATL 73  2228    20.6    0.566   0.233
404 Thabo Sefolosha SF  30  ATL 52  976 13.8    0.506   0.313
403 Mike Scott  PF  26  ATL 68  1123    15.1    0.543   0.424
401 Dennis Schroder PG  21  ATL 77  1516    15.7    0.516   0.223

0 个答案:

没有答案