Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 从txt文件文件夹生成频率表数据帧_R_Plyr - Fatal编程技术网

R 从txt文件文件夹生成频率表数据帧

R 从txt文件文件夹生成频率表数据帧,r,plyr,R,Plyr,我试图从一个文件夹中的单个文本文件中的一列创建一个频率表,并将其放入一个漂亮的数据框中 我有一个包含1000个文件的文件夹。1000个文本文件中的每一个都是tab del UTF-8(或者他们说,编码一直是个问题),有61列,行数从35到500不等 在每个文件中,第43列是一年。我想要的结束状态是一个数据框,其中数据集中显示的每一年都有一列,1000个文件中的每一个都有一行,该年在该文件的每个单元格中出现的总次数(换句话说,每年出现在第43列中的次数) 我有这个功能: findCY<-

我试图从一个文件夹中的单个文本文件中的一列创建一个频率表,并将其放入一个漂亮的数据框中

我有一个包含1000个文件的文件夹。1000个文本文件中的每一个都是tab del UTF-8(或者他们说,编码一直是个问题),有61列,行数从35到500不等

在每个文件中,第43列是一年。我想要的结束状态是一个数据框,其中数据集中显示的每一年都有一列,1000个文件中的每一个都有一行,该年在该文件的每个单元格中出现的总次数(换句话说,每年出现在第43列中的次数)

我有这个功能:

  findCY<-function(savedfile){
  text <- read.delim(savedfile, header=FALSE, sep="\t",colClasses=mycolClasses, quote="", na.strings="", encoding="UTF-8-BOM")
  cyvec<- as.numeric(text$V43[2:(length(text$V43))])
  cyvec<- sort(cyvec, decreasing=FALSE)
  labelcyvec<-c(savedfile,cyvec)
  return(labelcyvec)
}

findCY更改函数以输出数据帧列表,并使用lapply确实有效,则不需要熔化,只需铸造:

findCY<-function(savedfile){
  text <- read.delim(savedfile, header=FALSE, sep="\t",colClasses=mycolClasses, quote="", na.strings="", encoding="UTF-8-BOM")
  cyvec<- as.numeric(text$V43[2:(length(text$V43))])
  cyvec<- sort(cyvec, decreasing=FALSE)
  labelcyvec<-data.frame(savedfile,cyvec)
  print(c(savedfile,"ok"))
  return(labelcyvec)
}

CYall<- ldply(filenames, findCY)
CYall.cast<- dcast(CYall, savedfile~cyvec, fun.aggregate=length)

查找如何使用
lappy
而不是
ldply
?还是错误吗?我可以用Lappy得到一个列表。我现在正在考虑这个问题。我也尝试过一些事情:没有运气
test<- ldply(filenames[600:605], findCY)
test.melt<-melt(test,id.vars="V1")
test.cast<-dcast(test.melt, V1~value, fun.aggregate=length)
findCY<-function(savedfile){
  text <- read.delim(savedfile, header=FALSE, sep="\t",colClasses=mycolClasses, quote="", na.strings="", encoding="UTF-8-BOM")
  cyvec<- as.numeric(text$V43[2:(length(text$V43))])
  cyvec<- sort(cyvec, decreasing=FALSE)
  labelcyvec<-data.frame(savedfile,cyvec)
  print(c(savedfile,"ok"))
  return(labelcyvec)
}

CYall<- ldply(filenames, findCY)
CYall.cast<- dcast(CYall, savedfile~cyvec, fun.aggregate=length)