2016-08-16 65 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)