我在列表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循环也可以。
提前感谢您的帮助!
答案 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))