有没有办法导入具有编码文件名的多个文件

时间:2019-07-29 00:25:46

标签: r import

我几乎是R语言的初学者,所以如果我听起来很蠢,请原谅我。这是我的情况:

我模拟了960种不同的回答模式,进行了10个项目的测试。它们以.txt格式成对存储在我的目录中,因此有480对文本文件。它们的名称如下:x_a_b_c_d或y_a_b_c_d其中a,b,c和d是数字。 a在1到3之间,b和c在1到4之间,d在1到10之间。我需要从目录中调用每一对,将它们转换为频率表并将它们等同。我可以一一完成:

首先,我从目录中调用一对,并使用freqtab()函数将它们转换为频率表(因为equate()仅适用于它们)。

path1<-"directory//x_1_1_1_1.txt"
x1<-(read.table(path1, header=TRUE))
ftx1<-freqtab(x1, items = list(1:10, 9:10), scales = list(0:10, 0:2))

path2<-"directory//y_1_1_1_1.txt"
y1<-(read.table(path2, header=TRUE))
fty1<-freqtab(y1, items = list(1:10, 9:10), scales = list(0:10, 0:2))

然后我将它们等同为:

eq1<- equate(ftx1, fty1, type="linear", method="levine", ws=1)$conc$yx

但是,我需要对所有一对一对一地做。 因此,有什么方法可以成对调用.txt文件,并将它们等同于一个函数?

1 个答案:

答案 0 :(得分:0)

我不认识equate,所以我将从通用的数据处理角度回答。

xfiles <- list.files(path = "some_directory", pattern = "^x.*", full.names = TRUE)
yfiles <- gsub("^x", "y", xfiles)
bothexist <- file.exists(xfiles) & file.exists(yfiles)
xdata <- lapply(xfiles[bothexist], function(fn) {
  freqtab(read.table(fn, header = TRUE), items = list(1:10, 9:10), scales = list(0:10, 0:2))
})
ydata <- lapply(yfiles[bothexist], function(fn) {
  freqtab(read.table(fn, header = TRUE), items = list(1:10, 9:10), scales = list(0:10, 0:2))
})
eq <- Map(function(x,y) equate(x, y, type="linear", method="levine", ws=1)$conc$yx,
          xdata, ydata)