R. 对目录中许多数据帧的列表运行 lm 函数。错误:类型 'character' 的参数无效'envir'



我有一个目录,里面有1200000.txt文件(数据帧(。所有文件都有相同的列名(ID SEX PV YPV APV GT N E Y M C A(。使用R,我创建了这个目录中所有元素的列表:

library("plyr")
library("dplyr")
library("broom") 
library("tidyr")
snp_list <- list.files(pattern=".txt", all.files = T,full.names = F)

我想对列表中的每个元素应用一个函数:

pv1= lapply(snp_list, function(x) tidy(lm(PV ~ GT*SEX + M + GT*N,x)))

然而,我得到了这个错误:

Error in eval(predvars, data, env) : 
invalid 'envir' argument of type 'character' 
9.eval(predvars, data, env) 
8.model.frame.default(formula = PV ~ GT * SEX + M + GT * N, data = x, drop.unused.levels = TRUE) 
7.stats::model.frame(formula = PV ~ GT * SEX + M + GT * N, data = x, drop.unused.levels = TRUE) 
6.eval(mf, parent.frame()) 
5.eval(mf, parent.frame()) 
4.lm(PV ~ GT * SEX + M + GT * N, x) 
3.tidy(lm(PV ~ GT * SEX + M + GT * N, x)) 
2.FUN(X[[i]], ...) 
1.lapply(snp_list, function(x) tidy(lm(PV ~ GT * SEX + M + GT * N, x))) 

请帮忙!

snp_list只是文件名的矢量,您需要读取数据。

library(broom) 
pv1= lapply(snp_list, function(x) tidy(lm(PV ~ GT*SEX + M + GT*N,read.table(x))))

您可能需要根据数据向read.table添加其他参数。

相关内容

最新更新