У меня есть список фреймов данных, которые я хочу разделить по переменной. Я пытаюсь автоматизировать этот процесс путем создания функции. Я знаю, что есть функция с именем split, которая делает это, но я пытаюсь научиться создавать функции, поэтому я использую это как практику.
Вот некоторые примеры данных:
Area <- c(1, 5, 5 ,7, 2)
Protected <- c('protected', 'protected', 'protected', 'unprotected', 'unprotected')
a_data <- data.frame(Area, Protected)
Area <- c(6, 2, 7, 2, 9)
Protected <- c('protected', 'protected', 'protected', 'unprotected', 'unprotected')
b_data <- data.frame(Area, Protected)
Я хочу разделить каждый из них по переменной «Защищено», оставив мне четыре кадра данных: p_a, p_b, u_a и u_b.
Пока мой код такой:
names <- list('a', 'b')
f <- function(x){
for(i in names){
d <- paste(i,'_data', sep = '')
p_'i' <- subset(d, Protected == 'protected')
u_'i' <- subset(d, Protected == 'unprotected')
}
}
Это не работает, я уверен, что это потому, что я пытаюсь присвоить текущей итерации i имя переменной, а также пытаюсь присвоить ей значения.
Как мне исправить эту проблему?