У меня есть два набора данных следующим образом (в упрощенном виде, хотите верьте, хотите нет):
df1 <- structure(list(TERMAC_Value = c(122L, 122L, 122L, 122L, 122L,
605L), TERMAC_ShortName = structure(c(20L, 20L, 20L, 20L, 20L,
17L), .Label = c("AG", "BWS", "DAWS2", "DEMF", "DM", "EAAW",
"EABT", "EASDS", "EASM", "EEAW2", "KSP", "Marsh", "MAWS", "MEMF",
"MeWG", "MWS", "PV", "TWS", "WM", "ZM"), class = "factor"), GLOBCOV_Value = c(30L,
130L, 60L, 140L, 140L, 60L), Glob_ShortName = structure(c(14L,
11L, 8L, 6L, 6L, 8L), .Label = c("Bare", "CldBdFrst", "CropVeg",
"FloodFrt", "FloodGrs", "Grass", "GrassSgrub", "OpBdFrst", "OpNdFrst",
"RainCrop", "Shrub", "ShrubGrass", "Sparse", "VegCrop", "Water"
), class = "factor")), row.names = c(NA, 6L), class = "data.frame")
df2 <- structure(list(x = structure(c(1L, 2L, 6L, 7L, 3L, 4L, 5L), .Label = c("b1[1] VegCrop",
"b1[2] Shrub", "b1b2[1,1] VegCrop ZM", "b1b2[1,2] VegCrop PV",
"b1b2[2,2] Shrub PV", "b2[1] ZM", "b2[2] PV"), class = "factor"),
Mean = c(4.0188615, 1.0145846, -0.3134498, 1.1346487, -0.2701251,
-0.5978043, -0.06)), class = "data.frame", row.names = c(NA,
-7L))
Моя проблема в том, что мне нужно вычислить уникальное значение по следующей формуле:
y = 4,05 + b1 [i] + b2 [i] + b1b2 [i, i]
Это будет дополнительный столбец на df1. Так, например, значение для ZM и VegCrop будет следующим:
у = 4,05 - 0,3 + 4 - 0,27
y = 4.23
Итак, мой новый набор данных будет:
TERMAC_Value TERMAC_ShortName GLOBCOV_Value Glob_ShortName VALUE
122 ZM 30 VegCrop 4.23
122 ZM 130 Shrub etc
122 ZM 60 OpBdFrst ...
122 ZM 140 Grass ...
122 ZM 140 Grass ...
605 PV 60 OpBdFrst ...
Я знаю, что это может быть легко достигнуто с помощью некоторых циклов for
по наборам данных, но, поскольку я приложил все усилия, чтобы избежать обработки циклов for
, я застрял.
Заранее спасибо за любую помощь.