У меня есть два кадра данных.Количество наблюдений очень разное, и я хотел бы использовать некоторую информацию из одного кадра данных в другой, обусловливая некоторые логические отношения, и я не могу этого сделать.Уменьшенный пример будет выглядеть примерно так:
year <- as.vector(c(rep(1949,5), rep(1950,5), rep(1951,5), rep(1952,5)))
moneyband <- as.vector(c(rep(c(10,20,30,40,50),4)))
rate <-as.vector(c(rep(c(0.1,0.2,0.3,0.4,0.5),2),rep(c(0.15,0.25,0.35,0.45,0.55),2)))
datasmall <- as.data.frame(cbind(year,moneyband,rate))
yearbig <- as.vector(c(rep(1949,10), rep(1950,10), rep(1951,10), rep(1952,11)))
earnings <- as.vector(c(rep(c(9,19,30,39,50),8),60))
databig <- as.data.frame(cbind(yearbig,earnings))
Теперь я хочу создать новую переменную в большой базе данных (назовем ее ratebig), которая присваивает этой переменной скорость, связанную с этим количествомзаработок, если заработок (в большой базе данных) равен денежному диапазону (в небольшой базе данных) за данный год.Как вы можете видеть, в этом примере это произошло бы со значениями 30 и 50. Остальное я бы хотел, чтобы они были NA.
Я пробовал это:
databig$ratebig <- NA
for (i in 1949:1952) {
databig$ratebig[datasmall$year == i & (databig$earnings[databig$yearbig==i]==datasmall$moneyband[datasmall$year == i])] <- datasmall$rate[datasmall$year == i & (databig$earnings[databig$yearbig==i]==datasmall$moneyband[datasmall$year == i])]
}
Но разныеРазмер баз данных (или других вещей) доставляет мне неприятности (это дает мне ошибки, а результаты ошибочны).Кажется, что результат не заботится об условиях, как мне бы хотелось, и на него влияют относительное положение и структура в двух наборах данных.В принципе, я не хотел бы объединять наборы данных (мы говорим о большом количестве наблюдений в реальных данных) и надеялся найти способ сделать это.Спасибо !!