gpt4 book ai didi

r - 如何读取名称相似的文件?

转载 作者:行者123 更新时间:2023-12-01 08:18:39 24 4
gpt4 key购买 nike

我在名为 mydata 的目录中有几个文本文件

我可以这样列出它们:

  dir1<- list.files ("C:\\mydata", "*.txt", full.names = TRUE)

文件的第一部分名为 bg16.txt bg3.txt …..bg(number).txt`。

文件的第二部分名为yt16.txt yt3.txt …..yt(number).txt`。

其余文件名为zj16.txt zj3.txt …..zj(number).txt

随机数,但最大值为 20,最小值为 1

我可以读取编号为 6 的文件并应用回归:

b=read.table("C:\\mydata\\bg6.txt",sep=""):
> head(b)
x
1 0.29
2 0.21
z=read.table("C:\\mydata\\zj6.txt",sep=""):
> head(z)
x
1 0.10
2 0.56
y=read.table("C:\\mydata\\yt6.txt",sep=""):
> head(y)
x
1 0.56
2 0.32
names(b)="b";names(y)="y";names(z)="z"
dt=cbind(b,y,z)
res6=lm(y~ b + z, data=dt)

现在我可以手动对所有文件一一执行此操作,但这将花费大量时间。我想知道是否有任何函数可以匹配数字对应的文件: greb 相同数字中的三个文件 bg(number).txt, zj(number).txt, yt(number).txt

yt(number).txt读取为y,将zj(number).txt读取为z并且bg(number).txtb,然后像 6

那样找到回归

最佳答案

您可以拆分文件名以提取字母部分和数字部分。然后,您可以循环唯一的数字来获取每个分析的文件集。像这样的事情

# test data
dir1<-c("zj6.txt","yt6.txt","bg6.txt")

# Using this helper function... https://gist.github.com/MrFlick/10413321
nn<-do.call(rbind, regcapturedmatches(dir1,regexpr("(\\w+)(\\d+)\\.txt", dir1, perl=T)))

lapply(unique(nn[,2]), function(n) {
b <- read.table(dir1[nn[,1]=="bg" & nn[,2]==n],sep="", col.names="b");
z <- read.table(dir1[nn[,1]=="zj" & nn[,2]==n],sep="", col.names="z");
y <- read.table(dir1[nn[,1]=="yt" & nn[,2]==n],sep="", col.names="y");
lm(y~ b + z, data=cbind(b,z,y))
})

关于r - 如何读取名称相似的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34399862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com