2016-08-16 84 views
0

我正試圖合併下面的值數據集,這是一種尺寸。這裏的變量是R,合併數據集更改鍵值

activity_labels <- 

activity_id  activity_name 
1    WALKING 
2    WALKING_UPSTAIRS 
3    WALKING_DOWNSTAIRS 
4    SITTING 
5    STANDING 
6    LAYING 

與其他數據集如下所示:

activities_raw <- 

activity_id 
5 
5 
3 
3 
4 
2 

我希望看到的是:

activity_id  activity_name 
    5    STANDING 
    5    STANDING 
    3    WALKING_DOWNSTAIRS 
    3    WALKING_DOWNSTAIRS 
    4    SITTING 
    2    WALKING_UPSTAIRS 

不過,我看到的是完全不同的東西。事實上,它看起來像我正在做的合併是改變了我的記錄級數據activities_raw的值。我看到這一點:

activity_id  activity_name 
    1    WALKING 
    1    WALKING 
    1    WALKING 
    1    WALKING 
    1    WALKING 
    1    WALKING 

我已經嘗試內連接,左連接,右連接等。這是我內心的一個例子加盟:

merge(activities_raw , activity_labels , by="activity_id") 

任何幫助將不勝感激。

+0

你試過'合併(activities_raw,activity_labels,通過= 「ACTIVITY_ID」,all.y = TRUE)'? –

+0

請使用'dput'來創建一個簡單的可重現的例子。 – agstudy

+0

表面上,應該工作。讓實際數據集的樣本探討更深層次的問題會很有幫助。你可以做'dput(head(activity_labels))'和'dput(head(activities_raw))'併發布結果輸出嗎?這將使您可以直接處理一些數據。 – jdobres

回答

0

merge在這裏工作正常:

merge(xx2,xx1,sort=FALSE) 

# activity_id  activity_name 
# 1   5   STANDING 
# 2   5   STANDING 
# 3   3 WALKING_DOWNSTAIRS 
# 4   3 WALKING_DOWNSTAIRS 
# 5   4   SITTING 
# 6   2 WALKING_UPSTAIRS 

在有數據:

xx1 <- read.table(text="activity_id  activity_name 
1    WALKING 
2    WALKING_UPSTAIRS 
3    WALKING_DOWNSTAIRS 
4    SITTING 
5    STANDING 
6    LAYING",header=TRUE) 


xx2 <- read.table(text="activity_id 
5 
5 
3 
3 
4 
2",header=TRUE)