首先,这不是硬件问题。我在学校时一直在使用嵌套for循环,因为它们处理的数据大小合适。但是现在我的工作需要处理相当大的数据大小,我试图运行循环,但它们需要数天才能完成。所以我只是想知道如何将'mapply'应用于嵌套for循环。
基本上我在R中运行一些文本匹配,我所做的就是使用
match_1=table1[,1]
match_2=table2[,1]
match_split_1 <- str_split(match_1, pattern = " ")
match_split_2 <- str_split(match_2, pattern = " ")
k = 1
match_result=matrix("empty",ncol=26,nrow=500)
for (i in length(match_split_1))
{
for (j in length(match_split_2))
{
if (identical(match_split_1[[i]],match_split_2[[j]]))
{
temp_result <- c(table1[i,], table2[j,])
match_result[k,] <- t(as.matrix(c(k,temp_result)))
k=k+1
#I tried to pre allocate a matrix to match_result and not increase size
#of it everytime. However I received: Error in match_result[k, ] <-
#t(as.matrix(c(k, temp_result))) :
# incorrect number of subscripts on matrix
}
}
有什么见解? 谢谢!
更新:这是一个更具体的例子:
表1:
name score address
Jason 8 10 Cornell Street
Lisa 7 110 Park Avenue
David 10 225 Fifth Avenue
表2:
name phone#
David 323-4527
Kudrow 233-3618
所以我试图按名称匹配这两个表,我不能只是加入它们,因为我正在做的匹配是模糊的。我总是需要处理标点符号,空格,上/下字母等。 我正在做的是从每个表中提取名称,并使用嵌套的for循环进行模糊匹配(循环如上所示)。然后我使用索引i,j组合一行,然后将其附加到'match_result'。现在我想知道我是否可以用矢量化替换嵌套循环。
谢谢!