我可以使用一些帮助。我需要根据数据框中变量的值是否等于另一个向量的索引值,向数据框添加一个新变量。以下是一个简化示例:
vector [2 7 15 4 5]
dataframe (4 variables; Index, Site, Quad, Count)
Index Site Quad Count
1 2 3 0
1 3 7 2
2 1 8 0
2 3 3 1
3 2 3 0
4 3 7 2
5 1 8 0
5 3 3 1
我想要创建的变量将匹配数据框中df $ Index的值与向量中的匹配位置。也就是说,当df $ Index = 1时,新变量将为2(向量中的位置1),当df $ Index = 2时,新变量将为7(向量中的位置2),当df $ Index = 3,新变量为3(向量中的位置3)。
我最终进入了一个R虫洞,并且知道解决方案很简单,但我似乎无法得到它。谢谢你的帮助。
答案 0 :(得分:2)
如果您的索引通常是整数索引,例如
dd<-read.table(text="Index Site Quad Count
1 2 3 0
1 3 7 2
2 1 8 0
2 3 3 1
3 2 3 0
4 3 7 2
5 1 8 0
5 3 3 1", header=TRUE)
vec <- c(2, 7, 15, 4, 5)
然后您可以使用
创建新列dd$value <- vec[dd$Index]
dd
# Index Site Quad Count value
# 1 1 2 3 0 2
# 2 1 3 7 2 2
# 3 2 1 8 0 7
# 4 2 3 3 1 7
# 5 3 2 3 0 15
# 6 4 3 7 2 4
# 7 5 1 8 0 5
# 8 5 3 3 1 5