這裏是我的問題,只是對我來說很難...生成多個數據集和應用功能,並輸出多個數據集
我想生成多個數據集,然後應用功能,這些數據集,並輸出相應的輸出在單個或多個數據集(一切可能)...
我的例子,雖然我需要生成大量的變量和數據集
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