2016-11-18 2 views
-1

У меня есть dataframe с уникальными значениями в нем следующим образомGrep из списка, чтобы произвести несколько dataframes

red 
green 
blue 
yellow 

У меня есть еще один dataframe с цветами и другие столбцы следующим

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 

Мне нужно создайте данные, которые являются результатом grepping из строк с каждым цветом (с фреймом данных, названным по цвету, например:

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 фразу в функцию, которая будет выводить такое имя dataframe

ответ

2

Мы можем сделать это с split создать list из data.frame s

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 
+1

Тик для u разделение и переименование результата. Не так уверен в создании отдельного объекта, который необходим в моем случае, но спасибо –

Смежные вопросы