2017-03-29 9 views
0

データフレームstatic_dataに静的なデータが格納されています。目標は効率的なマージ(静的データの場合)

colnames(data) <- c("I","B") 
temp <- merge(data, static_data,by="I) 

ので、1次れるoutput

data <- data.frame(A = c("a","b","c","d","e"),B=c("a","b","b","e","e")) 

static_data <- data.frame(I=c("a","b","c","d","e"),Info=c(1,2,3,4,5)) 

output <- data.frame(A = c("a","b","c","d","e"),B=c("a","b","b","e","e"), 
        AI=c(1,2,3,4,5),BI=c(1,2,2,5,5)) 

私のコードを取得するためにstatic_datadataをマージすることです。効率的なコードを作成する最良の方法は何ですか?

+0

@MrFlickを。最初に列Aと列Bを使用してマージする必要があります。できるだけ名前を変更しないようにしたい – richpiana

+0

本当にデータを「ワイド」形式にする必要がありますか?データを溶かしてからマージを行うほうが簡単です。 – MrFlick

+0

はい私はAとBが一緒にリンクされているIDを表すという意味でワイドフォーマットを保つ必要があります – richpiana

答えて

1

あなたはこれを試すことができます:私はあなたの提案に同意

mg <- merge(data, static_data, by.x = "A", by.y = "I") 
cbind(mg, BI=merge(data, static_data, by.x = "B", by.y = "I")[,3]) 

# A B Info BI 
#1 a a 1 1 
#2 b b 2 2 
#3 c b 3 2 
#4 d e 4 5 
#5 e e 5 5 
関連する問題