指出列表中数据框的列

时间:2015-01-09 11:08:12

标签: r list dataframe

我在列表l中有多个数据帧,数字向量与l

的长度相同
set.seed(222)
a <- data.frame(x=rnorm(6), y=rnorm(6), z=rnorm(6))
b <- data.frame(x=rnorm(6), y=rnorm(6), z=rnorm(6))
c <- data.frame(x=rnorm(6), y=rnorm(6), z=rnorm(6))
l <- list(a, b, c)
v <- c(1:3)

我现在想用1的幂来取代l里面的第一个y列,用2的幂取得第二个y的取幂,并且使用apply优先使用3的幂取幂,但是for循环也可以。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

这是一种方式

lapply(l, function(df) as.data.frame(t(t(df)^v)))

答案 1 :(得分:0)

你可以尝试

Map(`^`, l, list(v[col(l[[1]])]))

Map(function(x,y) mapply(`^`, x,y), l, list(v))