小编R m*_*tey的帖子

比 R 中的嵌套 for 循环更有效的方法——匹配

我试图匹配姓名、姓氏和名字相同的人,并保持 ID 的最小数值。

我在下面创建了一个测试数据库(比我的实际数据集小得多)并编写了一个嵌套的 for 循环,看起来它正在做它应该做的事情。

但是在更大的数据集上它慢得要命。

我对 apply 函数比较陌生,但它们对于应用函数似乎比数据整理更直观。

对于我在这里所做的事情,有什么更有效的替代方法?我敢肯定有一个简单的解决方案会让我在这里问我摇头,但我不会来。

dta.test<- NULL
dta.test$Person_id <- c(1,2,3,4,5,6,7,8,9,10, 11)
dta.test$FirstName <- c("John", "James", "John", "Alex", "Alexander", "Jonathan", "John", "Alex", "James", "John", "John")
dta.test$LastName <- c("Smith", "Jones", "Jones", "Jones", "Jones", "Smith", "Jones", "Smith", "Johnson", "Smith", "Smith")
dta.test$DOB <- c("2001-01-01", "2002-01-01", "2003-01-01", "2004-01-01", "2004-01-01", "2001-01-01", "2003-01-01", "2006-01-01", "2006-01-01", "2001-01-01", "2009-01-01")
dta.test$Actual_ID <- c(1, 2, 3, 4, 5, 6, 3, 8, 9, 1, 11)
dta.test <- as.data.frame(dta.test)

for(i in unique(dta.test$FirstName))
  for(j in unique(dta.test$LastName))
    for (k …
Run Code Online (Sandbox Code Playgroud)

for-loop r apply

1
推荐指数
1
解决办法
296
查看次数

标签 统计

apply ×1

for-loop ×1

r ×1