Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R、 将多个文本文件名转换为列名_R_Text_Data.table - Fatal编程技术网

R、 将多个文本文件名转换为列名

R、 将多个文本文件名转换为列名,r,text,data.table,R,Text,Data.table,我有许多以年份命名的文本文件,即yob1940.txt,yob1941.txt。每个文件有3列数据。我试图将数据导入到单个数据表中的R中,并在第4列中为每个文件添加年份。 任何帮助都将不胜感激。 谢谢Smth这样做会奏效: rbindlist(lapply(list.files(pattern = "yob[0-9]+\\.txt"), function(x) data.table(year = sub('.*?([0-9]+).*', '\\1', x),

我有许多以年份命名的文本文件,即yob1940.txt,yob1941.txt。每个文件有3列数据。我试图将数据导入到单个数据表中的R中,并在第4列中为每个文件添加年份。
任何帮助都将不胜感激。
谢谢

Smth这样做会奏效:

rbindlist(lapply(list.files(pattern = "yob[0-9]+\\.txt"),
                 function(x) data.table(year = sub('.*?([0-9]+).*', '\\1', x),
                                        fread(x)))))

假设您已将这些文件读取为x1和x2

df.list<-list(x1,x2)
kk<-do.call(rbind,df.list)
year<-data.frame(rep(c(1940,1941),c(nrow(x1),nrow(x2))))
names(year)<-"year"
mydata<-data.frame(cbind(kk,year))

df.list关于这方面有很多问题。您需要函数
list.files
do.call
sapply
lappy
。不一定按那个顺序。:)
x1<-data.frame(x=c(1,3),y=c(2,3))
x2<-data.frame(x=c(3,3),y=c(2,2))
df.list<-list(x1,x2)
kk<-do.call(rbind,df.list)
year<-data.frame(rep(c(1940,1941),c(nrow(x1),nrow(x2))))
names(year)<-"year"
mydata<-data.frame(cbind(kk,year))

 mydata
  x y year
1 1 2 1940
2 3 3 1940
3 3 2 1941
4 3 2 1941