我有900000个csv文件,我想把它们组合成一个大的data.table
.对于这种情况,我创建了for loop
一个逐个读取每个文件并将它们添加到的文件data.table
.问题是它的执行速度变慢,所用的时间呈指数级增长.如果有人可以帮助我让代码运行得更快,那就太棒了.每个csv文件都有300行和15列.我到目前为止使用的代码:
library(data.table)
setwd("~/My/Folder")
WD="~/My/Folder"
data<-data.table(read.csv(text="X,Field1,PostId,ThreadId,UserId,Timestamp,Upvotes,Downvotes,Flagged,Approved,Deleted,Replies,ReplyTo,Content,Sentiment"))
csv.list<- list.files(WD)
k=1
for (i in csv.list){
temp.data<-read.csv(i)
data<-data.table(rbind(data,temp.data))
if (k %% 100 == 0)
print(k/length(csv.list))
k<-k+1
}
Run Code Online (Sandbox Code Playgroud) 我的初始数据:
From <- c(1,2,3,4,5,6,7,8)
To <- c(NA,1,2,13,2,NA,6,10)
Data <- data.frame(From,To)
Run Code Online (Sandbox Code Playgroud)
如果行导致不存在的“发件人”,我想将值从“收件人”更改为“不适用”。最终的数据最终应该看起来像这样。
From <- c(1,2,3,4,5,6,7,8)
To <- c(NA,1,2,NA,2,NA,6,NA)
Data <- data.frame(From,To)
Run Code Online (Sandbox Code Playgroud) Row<-c(1,2,3,4,5)
Content<-c("I love cheese", "whre is the fish", "Final Countdow", "show me your s", "where is what")
Data<-cbind(Row, Content)
View(Data)
Run Code Online (Sandbox Code Playgroud)
我想创建一个函数,告诉我每行有多少单词错误.
一个中间步骤是让它看起来像这样:
Row<-c(1,2,3,4,5)
Content<-c("I love cheese", "whre is the fs", "Final Countdow", "show me your s", "where is what")
MisspelledWords<-c(NA, "whre, fs", "Countdow","s",NA)
Data<-cbind(Row, Content,MisspelledWords)
Run Code Online (Sandbox Code Playgroud)
我知道我必须使用aspell,但我有问题只在行上执行aspell而不是总是直接在整个文件上,最后我想计算每行有多少单词错误为此我将采取以下代码:计算R中字符串中的单词数?
Tid <- c(1,1,2,2,2,3,4,4)
Uid <- c(10,10,11,11,12,13,10,14)
Data <- data.frame(Tid,Uid)
Run Code Online (Sandbox Code Playgroud)
我想知道每个Tid上有多少不同的Uid.我的结果应该是这样的.
Tid, freqUid
1, 1
2, 2
3, 1
4, 2
Run Code Online (Sandbox Code Playgroud)
我试图在它上面使用count但是在一个变量上使用它有一些问题.