R中大型数据集的非唯一键合并
我有一个很大的数据集R中大型数据集的非唯一键合并,r,R,我有一个很大的数据集all: UserKey kind_id user_name sex 1 7472505 2 Jane <NA> 2 4564687 5 Natalie F 3 4564687 2 Natalie F 4 4564687 2 Natalie F 5 4564687 5 Natalie F 6
all
:
UserKey kind_id user_name sex
1 7472505 2 Jane <NA>
2 4564687 5 Natalie F
3 4564687 2 Natalie F
4 4564687 2 Natalie F
5 4564687 5 Natalie F
6 5257695 2 Nelly F
> dim(all_orders)
[1] 104979393 4
匹配第一个数据集中的用户名
,以及字典中的用户名
我的尝试:
1。功能强大
get_sex <- function(input){
sex <- names[names$name==input,]$dsex
return(as.character(sex))
}
all$dsex <- sapply(all$user_name, get_sex)
如果您将它们转换为数据,则获取性。表
,尝试所有[name,on=c(“user\u name”=“name”),dsex:=dsex]
对于#2,您在dplyr版本中使用摘要-是否有特定的原因让您分组,然后进行摘要,而不是执行联接?我想通过查看您的数据,左_join()就可以做到这一点。通常情况下,merge<*applydata.table
,请尝试all[names,on=c(“user_name”=“name”),dsex:=dsex]
For#2,您在dplyr版本中使用摘要-是否有特定的原因让您分组,然后进行摘要,而不是执行联接?我想通过查看您的数据,左_join()就可以做到这一点。一般来说,merge<*applyget_sex <- function(input){
sex <- names[names$name==input,]$dsex
return(as.character(sex))
}
all$dsex <- sapply(all$user_name, get_sex)
names <- as.data.table(names, key = 'name')
a <- all %>% group_by(UserKey) %>% summarise(dsex = get_sex(user_name))
allm <- merge(all, names, by.x = c('user_name'), by.y = c('name'), all.x = T, all.y = F)