我需要阅读72个文件,每个文件包含学生ID和其他无用信息。我只需要学生ID并将所有这些都放在一个数据框中
å文件< -list.files(图案= “年”)
al< - lapply(afile,readLines)
减去< -grep( 'ID [0-9] +',人)中
但它出现了所有数据,而不仅仅是id no。
数据样本:
“每月报告”
“XXXXX大学”
“+ -------- + ------ + ----- +”
“| id | dep | scores |
“+ ------- + ----- + + ------
“| id593 | 2 | 233 |
我需要将其更改为:
ID
id522
id533
id544 它结合了所有文件的数据
答案 0 :(得分:1)
你可以尝试:
library(stringr)
id <- sapply(al, function(x) {na.omit(str_extract(x, "id[0-9]+"))})
dat <- data.frame(id, stringsAsFactors=FALSE)
dat
# id
#1 id593
#2 id245
如果您需要该行中的所有信息
dat <- read.table(text=sapply(al, function(x)
{x1 <- gsub("[[:punct:]]+", "",
grep("id[0-9]", x, value=TRUE))
gsub("^ +| +$", "", x1)
}), sep="",header=FALSE)
colnames(dat) <- c("id", "dep", "scores")
dat
# id dep scores
#1 id593 2 233
#2 id245 2 233
我创建了两个文件year1.txt
和year2.txt
afile <- list.files(pattern="year")
afile
#[1] "year1.txt" "year2.txt"
al <- lapply(afile, readLines)