这里是我的问题,只是对我来说很难...生成多个数据集和应用功能,并输出多个数据集
我想生成多个数据集,然后应用功能,这些数据集,并输出相应的输出在单个或多个数据集(一切可能)...
我的例子,虽然我需要生成大量的变量和数据集
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”的对象不会掩盖'var'函数,但它仍然不是一个好主意,因为人类大脑的组织不够精细。 –
@DWin:确实,在判断是使用变量还是函数时,R是合理的,但是在掩盖发生时存在一些不明确的情况。例如,在命令提示符处键入'var',然后R打印函数定义。现在定义'var < - 1:5'并重复。这一次打印了可变物。 –
@RichieCotton尼斯答案,但我同意@DWin有关掩蔽 - 这不是一个问题。请参阅http://stackoverflow.com/q/6135868/602276获取解释。代码'x < - 1:5; VAR(X); var < - “a”; VAR;尽管事实上存在一个名为'var'的新变量,var(x)'将尽你所能地完成所有事情。 – Andrie