【发布时间】:2019-09-26 23:33:00
【问题描述】:
我想将函数元素应用于数据框列表。我可以应用一个简单的函数,但不能应用更复杂的函数,因为我不确定如何引用参数。
我可以对数据框执行以下操作:
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)
【问题讨论】:
-
您希望输出的结构类型是什么?
-
我想要一个数据帧列表,与输入相同,但应用了缩放函数。 Ronak 的回答有效!