您的位置:首页 > 其它

r语言数据处理(三)

2015-12-05 23:17 344 查看
有一表1,v1表示序号

v1 v2

1 001

2 00A

3 00B

4 100

5 A00

下表为表2,v1表示序号

V1 V2 V3 V4 v5

1 001 002

2 00C 00A 00B

3 B00 C00 A00

4 300 100 200 500

期望在表1基础上,v1,v2列不变,在表2中寻找和表1中的v2在同一行的所有元素,添加到表1中,形成如下表:

V1 V2 V3 V4 v5

1 001 002

2 00A 00C 00B

3 00B 00C 00A

4 100 300 200 500

5 A00 B00 C00

代码如下:

a <- data.frame(v1=1:5, v2=c('001', '00A', '00B', '100', 'A00'), stringsAsFactors = F)
b <- data.frame(v1= 1:4, v2 = c('001', '00C', 'B00', '300'), V3 = c('002', '00A', 'C00', '100'), V4 = c(NA, '00B', 'A00', '200'), V5 = c(NA, NA, NA, '500'), stringsAsFactors = F)
r <- b
for(i in 1:nrow(a)){
key <- a[i, 2]
for(n in 1:nrow(b)){
if(length(which((b[n,]==key)==T))>0)
r[i, ] <- cbind(a[i, ], setdiff(b[n,-1], a[i,-1]))
}
}
r
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: