我有40个名称为
的文本文件$("#textInput").submit(function (e) {
console.log("123");
)};
我需要提取一个特定的数据,我知道如何单独进行,但这需要一段时间:
[1] "2006-03-31.txt" "2006-06-30.txt" "2006-09-30.txt" "2006-12-31.txt" "2007-03-31.txt"
[6] "2007-06-30.txt" "2007-09-30.txt" "2007-12-31.txt" "2008-03-31.txt" etc...
有人可以帮助我使用for循环,它可以从特定列中提取数据并在所有不同的文本文件中行吗?
答案 0 :(得分:2)
假设您的文件都在同一个文件夹中,您可以使用list.files
获取所有文件的名称,然后循环浏览它们并获取所需的值。这样的事情呢?
m_value<-character() #or whatever the type of your variable is
filelist<-list.files(path="...", all.files = TRUE)
for (i in 1:length(filelist)){
df<-read.table(myfile[i], h=T)
m_value[i]<-df$Marknadsvarde_tot[1]
}
编辑:
如果您已经导入了所有可以使用的数据get
:
txt_files <- list.files(pattern = "*.txt")
for(i in txt_files) { x <- read.delim(i, header=TRUE) assign(i,x) }
m_value<-character()
for(i in 1:length(txt_files)) {
m_value[i] <- get(txt_files[i])$Marknadsvarde_tot[1]
}
答案 1 :(得分:1)
您可以使用select
- fread
的{{1}} - 参数来实现此目的:
data.table
这将产生一个数据表/数据帧列表。如果你只想要一个包含所有值的向量:
library(data.table)
file.list <- list.files(pattern = '.txt')
lapply(file.list, fread, select = 'Marknadsvarde_tot', nrow = 1, header = FALSE)
答案 2 :(得分:0)
temp = list.files(pattern="*.txt")
library(data.table)
list2env(
lapply(setNames(temp, make.names(gsub("*.txt$", "", temp))),
fread), envir = .GlobalEnv)
在Importing multiple .csv files into R
的现有答案中添加了data.table获得所有文件后,您可以使用DT [i,j,k]从data.tables获取数据,其中我将成为您的条件