【发布时间】:2015-05-02 05:27:12
【问题描述】:
我有一个数据框(标签),我想用作表格的参考或查找表:
V1 V2
1 1 WALKING
2 2 WALKING_UPSTAIRS
3 3 WALKING_DOWNSTAIRS
4 4 SITTING
5 5 STANDING
6 6 LAYING
要使用参考表的数据框是 (test, ncol = 564, nrow = 2947) 其中前三个 colname 是 (test_subject, test_label(num 1-6), data_set) 其中 test_label(1-6) 等于上面引用的字符串。
有人可以帮我弄清楚如何使用我的查找表插入一个名为“activity_label”的新列,并且该列的每个观察值都对应于与引用表中的引用数字等效的字符串。
例如,如果 test_label 第 1 行等于 5,那么 activity_label 第 1 行将等于“Standing”
非常感谢您的帮助!
#
使用合并方法后:
> test2[1:10, 564: 565]
angle(Z,gravityMean) activity_label
1 0.04404283 walking
2 0.04134032 walking
3 0.04295217 walking
4 0.03611571 walking
5 -0.09080307 walking
6 -0.08602478 walking
7 -0.07997668 walking
8 0.04372663 walking
9 0.19900166 walking
10 0.20350821 walking
分析剩余dfs的结构
> str(test1)
'data.frame': 2947 obs. of 565 variables:
$ test_labels : int 1 1 1 1 1 1 1 1 1 1 ...
$ test_subject : int 12 12 12 12 4 4 4 12 9 9 ...
$ observ_set : Factor w/ 1 level "test": 1 1 1 1 1 1 1 1 1 1 ...
$ tBodyAcc-mean()-X : num 0.228 0.303 0.237 0.306 0.29 ...
> str(train1)
'data.frame': 7352 obs. of 565 variables:
$ train_labels : int 1 1 1 1 1 1 1 1 1 1 ...
$ V1 : int 27 7 7 26 7 26 6 6 6 7 ...
$ observ_set : Factor w/ 1 level "train": 1 1 1 1 1 1 1 1 1 1 ...
$ tBodyAcc-mean()-X : num 0.262 0.354 0.344 0.292 0.314 ...
【问题讨论】:
-
您的测试表是否已经针对其中的每个测试对象包含活动编号(1、2、3、4、5 和 6),您只想创建一个附加列,其字符串等效于活动编号?
-
嗨@vagabond,是的,这是正确的。 test-df 有一列活动编号(但没有标签),我只想插入一列“字符串”,其值与 test-df 中的“id”键相关。
-
我复制了示例数据集、查找表和合并 - 没有收到任何错误 - 请参阅我的答案中的示例。我认为警告与您的变量的
class有关。粘贴str(test)和str(lookup_table)的输出。 -
是的,看起来附加函数工作正常,它可能对它必须处理的所有变量感到恼火:)
-
太好了,那么您可以通过单击复选标记接受答案并投票!
标签: r merge dataframe categorization