2015-07-22 2 views
-1

У меня есть переменная, которая содержит различные категории в качестве наблюдений. Всего 42 (думаю, красный, синий, желтый и оранжевый, под цветовой переменной ...).Подмножество, основанное на имени наблюдения

Я хотел бы подмножить данные таким образом, чтобы каждый из 42 различных кадров данных основывался на этих категориях. Таким образом, будет кадр с красным, синим, желтым и оранжевым.

Мой план заключается в некоторых манипуляциях со всеми кадрами данных с использованием lapply.

ответ

0
for (x in unique(modshare$STCG.2.Commodity)) assign(paste0(x, 'modshare'), 
                modshare[which(modshare$STCG.2.Commodity==x),,drop=FALSE]) 
0

Существует несколько способов сделать это, но без фрагмента кода или желаемого результата очень сложно прочитать ваш ум и попытаться угадать, каковы ваши цели. В следующий раз представим воспроизводимый пример. В любом случае, один из способов сделать это - split(data, data$variable_color), где variable_color - это имя переменной, которая содержит цвета, которые вы хотите разбить.

Вот пример с mtcars набора данных в R.

splitted <- split(mtcars, mtcars$cyl) 

, что дает список фреймов данных, как вы можете видеть, например, с:

class(splitted[["4"]]) 
[1] "data.frame"