【问题标题】:grep from a list to produce multiple dataframes [duplicate]grep 从列表中生成多个数据帧 [重复]
【发布时间】:2016-11-18 11:21:07
【问题描述】:

我有一个具有唯一值的数据框,如下所示

red
green
blue
yellow

我有另一个数据框,其颜色和其他列如下

red        1        4
green      2        4
blue       2        5
yellow     1        7
red        54      35
green      25      54
blue       33      66
yellow     63      63
blue       22      99
yellow     80      25
red        26      33
green      16      17

我需要创建数据框,这些数据框是用每种颜色提取行的结果(数据框以颜色命名,例如:

dfred
 red        1        4
 red        54      35
 red        26      33
dfyellow
 yellow     1        7
 yellow     63      63
 yellow     80      25

dfblue
 blue       2        5
 blue       33      66
 blue       22      99

dfgreen
 green      2        4
 green      25      54
 green      16      17

我可以通过认为有更简单的方法来一一完成。这可以在函数中完成吗?

我真的不知道如何将每个 grep 短语替换为会输出此类命名数据帧的函数

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以使用split 来创建listdata.frames

    lst <- split(df2, as.character(df2$col1))
    names(lst) <- paste0('df', names(lst))
    

    然后使用list2env 在全局环境中创建单个对象(虽然不推荐)

    list2env(lst, envir = .GlobalEnv)
    dfred
    #   col1 col2 col3
    #1   red    1    4
    #5   red   54   35
    #11  red   26   33
    

    【讨论】:

    • 勾选使用拆分和重命名结果。不太确定在我的情况下需要创建单个对象,但谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-07-22
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 2014-10-07
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多