【发布时间】:2022-01-13 03:10:22
【问题描述】:
我想知道如何在重复过滤器的数据集上编写循环:
我的示例数据集1:
df= structure(list(system = c("1-Jan-16", "2-Jan-16", "3-Jan-16",
"4-Jan-16"), evi1500 = c(0.437, 0.408, 0.429, NA), evi21500 = c(0.3891771,
0.38915543, 0.389133761, 0.389112091), kndvi1500 = c(0.493, 0.471,
0.769, 0.223), ndvi1500 = c(0.261, 0.698, 0.645, 0.627), nirv1500 = c(0.444426458,
0.444472048, 0.444517639, 0.444563229), evi2500 = c(0.366, 0.33,
0.367, 0.608), evi22500 = c(0.74, 0.241, 0.424, 0.398), kndvi2500 = c(0.41,
0.384, 0.684, 0.173), ndvi2500 = c(0.474621566, 0.474655555,
0.474689544, 0.474723532), nirv2500 = c(0.362, 0.596, 0.145,
0.442)), row.names = c(NA, 4L), class = "data.frame")
代码1
outliersevi1500=hampel_outlier(df$evi1500,k_mad_value = 3)
outliersevi1500
outliersevi21500=hampel_outlier(df$evi21500,k_mad_value = 3)
outliersevi21500
outlierskndvi1500=hampel_outlier(df$kndvi1500,k_mad_value = 3)
outlierskndvi1500
df$evi1500[df$evi1500 < 0.1992968 | df$evi1500 > 0.5907032 ] <- NA
df$evi21500[df$evi21500 < 0.2243160 | df$evi21500 > 0.5534532 ] <- NA
df$kndvi1500[df$kndvi1500 < 0.1596835 | df$kndvi1500 > 0.7749794 ] <- NA
提前感谢您的帮助。
【问题讨论】:
-
您有不同的过滤条件。这不仅仅是对许多行重复应用一个函数。您想将
hampel_outlier仅应用于所提及的 3 列,还是仅应用于名称中包含1500的每一列? -
我想将
hampel_outlier应用于我的数据集中包含1500和2500的名称的十列。 @danlooo