У меня довольно большой фрейм данных, и я пытаюсь разделить этот фрейм данных на несколько меньших.
Предположим, у меня есть этот фрейм данных с именем df:
Patient Status cancer
1 1 treated melanoma
2 2 deceased melanoma
3 3 deceased carcinoma
4 4 treated lymphoma
5 5 deceased melanoma
6 6 treated carcinoma
7 7 deceased lymphoma
8 8 deceased carcinoma
9 9 treated melanoma
10 10 treated melanoma
Я хочу установить подкадры данных на основе столбца «рак» и сохранить их в соответствующем объекте следующим образом:
Patient Status cancer
1 3 deceased carcinoma
2 6 treated carcinoma
3 8 deceased carcinoma
Patient Status cancer
1 1 treated melanoma
2 2 deceased melanoma
3 5 deceased melanoma
4 9 treated melanoma
5 10 treated melanoma
Patient Status cancer
1 4 treated lymphoma
2 7 deceased lymphoma
Мне удалось написать этот код, используя функцию dplyr filter
, и он выполняет свою работу, но из-за того, что мой начальный фрейм данных довольно большой, зацикливание задыхает мой компьютер,
factors = c(levels(df[,"cancer"]))
for (i in factors) {
assign(i, filter(df, cancer == i), envir = .GlobalEnv)
}
Буду признателен, если кто-нибудь предложит более оптимизированную альтернативу.
С наилучшими пожеланиями.