R 基于命名向量对列进行变异,如查找表
尝试使用R 基于命名向量对列进行变异,如查找表,r,R,尝试使用match(): 如果我们反转“named_vect”的名称、值,则可以使用recode x y text_name 1 1 2.4290706 blah 2 2 0.5817137 dog 3 3 0.7392442 cat # x y text_name #1 1 -2.0009292 blah #2 2 0.3337772 dog #3 3 1.1713251 cat
match()
:
如果我们反转“named_vect”的名称、值,则可以使用
recode
x y text_name
1 1 2.4290706 blah
2 2 0.5817137 dog
3 3 0.7392442 cat
# x y text_name
#1 1 -2.0009292 blah
#2 2 0.3337772 dog
#3 3 1.1713251 cat
或者使用
base R
,我们通过转换为字符来匹配“x”,以匹配“命名向量”的名称
x y text_name
1 1 2.4290706 blah
2 2 0.5817137 dog
3 3 0.7392442 cat
# x y text_name
#1 1 -2.0009292 blah
#2 2 0.3337772 dog
#3 3 1.1713251 cat
blah$text\u name使用match
blah$text_name <- named_vect[as.character(blah$x)]
或堆栈
+合并
transform(
blah,
text_name = names(named_vect)[match(x, named_vect)]
)
给予
A数据表
选项
x y text_name
1 1 0.6207273 blah
2 2 -0.2710539 dog
3 3 2.0738347 cat
给予
blah$text_name <- named_vect[as.character(blah$x)]
transform(
blah,
text_name = names(named_vect)[match(x, named_vect)]
)
merge(blah, setNames(stack(named_vect), c("x", "text_name")))
x y text_name
1 1 0.6207273 blah
2 2 -0.2710539 dog
3 3 2.0738347 cat
library(data.table)
data.table(blah)[data.table(stack(named_vect)), on = .(x = values)]
x y ind
1: 1 -1.2302276 blah
2: 2 -0.8073727 dog
3: 3 -0.2389972 cat