我有一个问题,对我来说很难...
我希望生成多个数据集,并对这些数据集应用函数,输出相应的单个或多个数据集的输出(尽可能)...
我的例子,虽然我需要生成大量的变量和数据集。
seed <- round(runif(10)*1000000)
datagen <- function(x){
set.seed(x)
var <- rep(1:3, c(rep(3, 3)))
yvar <- rnorm(length(var), 50, 10)
matrix <- matrix(sample(1:10, c(10*length(var)), replace = TRUE), ncol = 10)
mydata <- data.frame(var, yvar, matrix)
}
gdt <- lapply (seed, datagen)
# resulting list (I believe is correct term) has 10 dataframes:
# gdt[1] .......to gdt[10]
# my function, this will perform anova in every component data frames and
#output probability coefficients...
anovp <- function(x){
ind <- 3:ncol(x)
out <- lm(gdt[x]$yvar ~ gdt[x][, ind[ind]])
pval <- out$coefficients[,4][2]
pval <- do.call(rbind,pval)
}
plist <- lapply (gdt, anovp)
Error in gdt[x] : invalid subscript type 'list'
这个无法正常工作,我尝试了不同的选项。但是没能找出解决方法...最终决定请教专家,非常抱歉...
我的问题如下:
(1) 是否可以以这种方式处理这样的情况,或者有其他方法可以处理创建的多个数据集?
(2) 如果这是正确的方式,我该如何操作?
感谢您的关注和帮助...
var
函数,但这仍然不是一个好主意,因为人类大脑并不像计算机那样有条理。 - IRTFMx <- 1:5; var(x); var <- "a"; var; var(x)
将按您的预期执行所有操作,尽管有一个名为var
的新变量。 - Andrie