Я хочу применить функцию поэлементно к списку фреймов данных.Я могу применить простую функцию, но не более сложную, потому что я не знаю, как ссылаться на аргументы.
Я могу выполнить следующее действие для фрейма данных:
df1 <- data.frame(
A = c(1, 2),
B = c(1, 3)
)
centered <- apply(df1, 2, function(x) x - mean(x))
scaled <- apply(centered, 2, function(x) x/sqrt(sd(x)))
Затем я создаю список из двух фреймов данных (у них будет одинаковое количество строк, но разное количество столбцов):
df1 <- data.frame(
A = c(1, 2),
B = c(1, 3))
df2 <- data.frame(
A = c(1, 2, 3, 4),
B = c(1, 2, 3, 4))
l=list(df1,df2)
Я узнал, что mapply, кажется, выполняет то, что я хочу.Но как применить действия сверху?Вот отображение для функции (x, y).Я хотел бы применить действия centered
и scaled
сверху вместо:
l_output <- mapply(function(x,y) x*y, x = 2, y = list, SIMPLIFY = FALSE)