Предположим, у меня есть два набора данных df1 и df2 следующим образом:
df1 <- data.frame(Id = c(1L,2L,3L,4L,5L,6L,7L,8L), pricetag = c("na","na","na","na","na","na","na","na"),stringsAsFactors=F)
df2 <- data.frame(Id=c(1L,2L,3L,4L), price = c(10,20,30,40), stringsAsFactors=F)
> df1
Id pricetag
1 1 na
2 2 na
3 3 na
4 4 na
5 5 na
6 6 na
7 7 na
8 8 na
> df2
Id price
1 1 10
2 2 20
3 3 30
4 4 40
Я пытаюсь вставить значения цены от df2 до df1, сопоставляя идентификатор с помощью этой функции.
df1$pricetag <- df2$price[match(df1$Id, df2$Id)]
, который обеспечивает это:
> df1
Id pricetag
1 1 10
2 2 20
3 3 30
4 4 40
5 5 NA
6 6 NA
7 7 NA
8 8 NA
У меня есть третий набор данных. Я пытаюсь следовать той же процедуре.
df3 <- data.frame(Id=c(5L,6L,7L,8L), price=c(50,60,70,80),stringsAsFactors=F)
> df3
Id price
1 5 50
2 6 60
3 7 70
4 8 80
df1$pricetag <- df3$price[match(df1$Id, df3$Id)]
> df1
Id pricetag
1 1 NA
2 2 NA
3 3 NA
4 4 NA
5 5 50
6 6 60
7 7 70
8 8 80
Однако он перезаписывает информацию о ценах, поступающую от df2 в df1. Можно ли отключить эту опцию, когда я повторяю ту же процедуру?