【问题标题】:For look to create smaller data frames寻找创建更小的数据框
【发布时间】:2017-07-28 09:56:31
【问题描述】:

我需要创建一个数据框库以搜索更大的数据框

大数据框架:

 4 LW1001            NA    NA       <NA>       NA         test

 5 LW1001            NA    NA       <NA>       NA         test

      .

      .



 6 LW1002            NA    NA       <NA>       NA         test

 7 LW1002            NA    NA       <NA>       NA         test

 8 LW1002            NA    NA       <NA>       NA         test

 9 LW1003            NA    NA       <NA>       NA         test

我想要如下数据框:

 4 LW1001            NA    NA       <NA>       NA         test

 5 LW1001            NA    NA       <NA>       NA         test

 6 LW1001            NA    NA       <NA>       NA         test


 7 LW1001            NA    NA       <NA>       NA         test

 8 LW1001            NA    NA       <NA>       NA         test

 9 LW1001            NA    NA       <NA>       NA         test


for(i in ModulesWithMarks)
{


  i <- ModuleMarks[ModuleMarks$Module==i,]

}

我在上面尝试,有人对此有任何想法吗? for 循环是错误的还是有更好的方法?

第二列的子集,for 循环有效,但是,我没有创建数据框。所以发生的事情是,我在名为i 的表中获得了具有同一列的最后一行。 .....

所以它在 for 循环中处理它,但它没有以编程方式创建表.....我得到LWxxxx(结束数据框),它被称为i,但我应该得到LW1001数据框,LW1002 第二列中所有唯一值的数据框。

【问题讨论】:

    标签: r for-loop


    【解决方案1】:

    我不确定我是否理解,但如果我理解,您想按第二列进行子集化:

     df2 = df[df[,2]=="LW1001",]
    

    要为每个循环,你会说:

       for(i in unique(df[,2])){assign(i,  df[df[,2]==i,])}
    

    你不必循环,查看split

    【讨论】:

    • 非常感谢
    • @pat,如果此答案对您有所帮助并且您想关闭问题,您能否通过单击复选标记来接受答案?您可以等待更好的答案,也可以在将来更改为更好的答案。
    • 是的,我想按第二列进行子集化,for 循环有效,但是,我没有创建数据框。所以发生的事情是我在名为 i 的表中获得了具有相同列的最后一行。 .....所以它在for循环中处理它,但它没有以编程方式创建表......我得到LWxxxx(结束数据帧)但我应该得到LW1001数据帧,LW1002数据帧。 .. 谢谢
    • 编辑使用assign将每个子集保存为一个对象
    • 谢谢 Olivia,我花了整个周末的时间在脑海中思考这个问题,它有效!再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2018-03-07
    • 2021-06-26
    • 1970-01-01
    • 2015-10-10
    相关资源
    最近更新 更多