【发布时间】:2020-12-02 12:31:37
【问题描述】:
我有一个名为“covs”的 df,在行和列中都有站点,每个站点有 9 个不同的环境变量。我需要使用函数x - center_values(x)) / scale_values(x) 重新计算每个单元格的值。但是,'center_values' 和 'scale_values' 对于每个环境协变量是不同的,它们位于另一个称为 'correction' 的 df 中。
我找到了许多解决方案,可以为整个 df 应用函数,但不能根据要转换的值的 id 应用特定值。
covs <- read.table(text = "X elev builtup river grip pa npp treecov
384879-2009 1 24.379101 25188.572 1241.8348 1431.1082 5.705152e+03 16536.664 60.23175
385822-2009 2 29.533478 32821.770 2748.9053 1361.7772 2.358533e+03 15773.115 62.38455
385823-2009 3 30.097059 28358.244 2525.7627 1073.8772 4.340906e+03 14899.451 46.03269
386765-2009 4 33.877861 40557.891 927.4295 1049.4838 4.580944e+03 15362.518 53.08151
386766-2009 5 38.605156 36182.801 1479.6178 1056.2130 2.517869e+03 13389.958 35.71379",
header= TRUE)
correction <- read.table(text = "var_name center_values scale_values
1 X 196.5 113.304898393671
2 elev 200.217889868483 307.718211316278
3 builtup 31624.4888660664 23553.2438790344
4 river 1390.41023742909 1549.88661649406
5 grip 5972.67361738244 6996.57793554527
6 pa 2731.33431010861 4504.71055521749
7 npp 10205.2997576655 2913.19658598938
8 treecov 47.9080656134352 17.7101565911347
9 nonveg 7.96755640452006 4.56625351682905", header= TRUE)
有人可以帮我编写代码,使用“校正”中报告的特定协变量值重新计算“covs”中的环境协变量值吗?例如。对于 df 'covs' 的 'elev' 列中的每个值,我需要减去在 'corrected' df 中为 'elev' 报告的 'center_value',然后除以报告中的 'elev' 的 'scale_value' '纠正' df。感谢您的热心帮助。
【问题讨论】:
标签: r database function dataframe