例如(不确定是否最具代表性的例子):
N <- 1e6
d1 <- data.frame(x=sample(N,N), y1=rnorm(N))
d2 <- data.frame(x=sample(N,N), y2=rnorm(N))
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所得到的:
d <- merge(d1,d2)
# 7.6 sec
library(plyr)
d <- join(d1,d2)
# 2.9 sec
library(data.table)
dt1 <- data.table(d1, key="x")
dt2 <- data.table(d2, key="x")
d <- data.frame( dt1[dt2,list(x,y1,y2=dt2$y2)] )
# 4.9 sec
library(sqldf)
sqldf()
sqldf("create index ix1 on d1(x)")
sqldf("create index ix2 on d2(x)")
d <- sqldf("select * from d1 inner join d2 on d1.x=d2.x")
sqldf()
# 17.4 sec
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用它plyr和它的朋友组合数据帧,merge但是到目前为止我不知道如何根据2列合并两个数据帧和多列?
我有一个大约105000行和30列的数据集.我有一个分类变量,我想将它分配给一个数字.在Excel中,我可能会做一些事情VLOOKUP并填写.
我将如何做同样的事情R?
基本上,我所拥有的是一个HouseType变量,我需要计算HouseTypeNo.以下是一些示例数据:
HouseType HouseTypeNo
Semi 1
Single 2
Row 3
Single 2
Apartment 4
Apartment 4
Row 3
Run Code Online (Sandbox Code Playgroud)