【发布时间】:2019-05-21 20:50:28
【问题描述】:
我正在尝试使用 apply 系列函数对包含在数据帧列表(总共 1038 个)中的每个数据帧执行平均水位的线性插值,但我无法在插值函数中定义变量指向每个数据框中的列。
这是我列表的开头:
head(df_list)
$`1928-01-01`
station date_measured daily_mean max min mean lon lat
8267 20250000 1928-01-01 0 453 193 272 -49.5519 -15.2753
8268 20250000 1928-01-01 0 453 191 276 -49.5519 -15.2753
$`1928-02-01`
station date_measured daily_mean max min mean lon lat
8269 20250000 1928-02-01 0 NA NA NA -49.5519 -15.2753
8270 20250000 1928-02-01 0 NA NA NA -49.5519 -15.2753
$`1928-03-01`
station date_measured daily_mean max min mean lon lat
8271 20250000 1928-03-01 0 394 219 282 -49.5519 -15.2753
8272 20250000 1928-03-01 0 382 218 281 -49.5519 -15.2753
$`1928-04-01`
station date_measured daily_mean max min mean lon lat
8273 20250000 1928-04-01 0 280 176 224 -49.5519 -15.2753
8274 20250000 1928-04-01 0 287 178 223 -49.5519 -15.2753
$`1928-05-01`
station date_measured daily_mean max min mean lon lat
8275 20250000 1928-05-01 0 199 161 172 -49.5519 -15.2753
8276 20250000 1928-05-01 0 197 162 173 -49.5519 -15.2753
$`1928-06-01`
station date_measured daily_mean max min mean lon lat
8277 20250000 1928-06-01 0 174 132 149 -49.5519 -15.2753
8278 20250000 1928-06-01 0 173 132 149 -49.5519 -15.2753
这是我最初尝试的:
daily_int <- lapply(df_list, function(x) interp(x=lon,y=lat,z=mean, method="linear"))
导致以下错误:
Error in interp(x = lon, y = lat, z = mean, method = "linear") :
object 'lat' not found
我意识到 interp 函数没有找到我希望它查看的列,并且是 apply 系列的新手,我不知道该怎么做(或者是否可能)。从本质上讲,我需要对河流的每日水位进行插值,我希望以最有效的方式进行,同时保持日子分开。
根据评论进行编辑:我正在尝试预测每个数据帧的平均值、最小值和最大值。
【问题讨论】:
-
使用什么包来调用你的函数
interp?它不在base。 -
是interp包。