我有一个数据框:
a <- c(1,2,3,4,5,6)
b <- c(1,2,1,2,1,4)
c <- c("A", "B", "C", "D", "E", "F")
df <- data.frame(a,b,c)
我想要做的是创建另一个向量d
,其中包含c
行中a
的值,该值与b
的每个值匹配
所以我的新矢量看起来像这样:
d <- c("A", "B", "A", "B", "A", "D")
例如,b
的最终值为4
,与a
的第4行匹配,因此d
的值为第4行c
,"D"
。
答案 0 :(得分:8)
如果 a 和 b 都是具有整数值的列表,则可以直接使用它们。
d <- c[b[a]]
d
[1] "A" "B" "A" "B" "A" "D"
如果 a 是 c 的常规整数序列,您只需从 b 中调用 c 。
c[b]
[1] "A" "B" "A" "B" "A" "D"
答案 1 :(得分:0)
另一种选择是转换为因子并将其用作:
factor(a, labels = c)[b]
#[1] A B A B A D
或强>
as.character(factor(a, labels = c)[b])
#[1] "A" "B" "A" "B" "A" "D"
数据强>
a <- c(1,2,3,4,5,6)
b <- c(1,2,1,2,1,4)
c <- c("A", "B", "C", "D", "E", "F")