Возможный дубликат:
Обработка списка data.frames с помощью семейства функций «apply»
У меня есть кадр данных с шестью числовыми переменными V1, V2, V3 и V1.lag, V2.lag, V3.lag.
ПРИМЕЧАНИЕ. В моем реальном наборе данных намного больше переменных, но я использую 3 только для иллюстрации!
Я хотел бы иметь возможность автоматически (без жесткого кодирования чего-либо) запускать все переменные V (не переменные задержки) и создавать переменные V1.over.V1.lag, разделив каждую переменную V на соответствующую переменную задержки.
df<-data.frame(matrix(rnorm(216),72,6));
colnames(df) <- c("v1.raw", "v2.raw", "v3.raw", "v1.lag", "v2.lag", "v3.lag");
заранее спасибо
** РЕДАКТИРОВАТЬ: я понял, как идентифицировать «сырые» столбцы и столбцы «отставания» **
raws <- sapply( names(df), function(x){ unlist(strsplit(x, "[.]"))[2] == "raw" } ); ## which are raw factors
lags <- sapply( names(df), function(x){ unlist(strsplit(x, "[.]"))[2] == "lag" } ); ## which are lagged factors
но я до сих пор не могу понять, как разделить все необработанные факторы с их запаздывающими аналогами
which(raws);
даст мне индексы, но как мне объединить их с лагами в новый фактор?
df[which(raws)] / df[which(lags)]
не работает