【发布时间】:2020-01-29 18:22:52
【问题描述】:
我得到了一列带标签的值。姑且称之为国家吧。 当我跑步时:
attr(dat[["Country"]], "labels")
我得到下一张桌子:
USA Germany France UK Spain India Saudi Arabia
1 2 3 4 5 6 7
现在我得到了一列未标记的新 int 值。让我们称之为新国家。我想将这些 int 值更改为原始 Country 列的标签。换句话说,我想以一种有效的方式摆脱这种情况......
3 2 2 1 5 4
到这个...
法国 德国 德国 美国 西班牙 英国
【问题讨论】:
-
只需提取
attr(dat[["Country"]], "labels")[i]wherei <- c(3, 2, 2, 1, 5, 4)。 -
我试过了,但它只是再次返回数字而不是实际标签。
-
好的,标签似乎有名字。将
attr(etc)的输出分配给labs。names(labs)返回什么?如果它返回国家名称,则从中提取,names(labs)[i]. -
酷!它确实返回国家名称。但是,这种方法可能仅在标签编号 (1,2,3,4,5...) 从 1 开始并且是连续的情况下才有效。
-
不,不管标签本身如何,它都可以工作,它是由
i子集的向量(恰好是标签)的名称。如果我在答案中解释可能会更好?