列中R中的线性插值

发布于 2025-02-13 14:24:28 字数 181 浏览 1 评论 0原文

我有一个名为“费率”的列的表。此列包括缺失值。 我需要计算线性函数,在基于先前的现有值和遵循缺失值之后的值计算中缺失值的情况下,替换值之间的间隔应相等。

例如,列“费率”包括值: 0,66 na na na 0,77 0,75 0,79 na na 0,79

,我需要获得一个新的列,其中Na值将以我上述方式替换为R。

I have a table with column called 'rates'. This column include missing values.
I need to calculate linear function where missing values are calculated based on previous existing value and a value that follows the missing value, and there should be an equal interval between replaced missing values.

For example, column 'rates' include values:
0,66
Na
Na
Na
0,77
0,75
0,79
Na
Na
0,79

And I need to get a new column where Na values will be replaced in R the way I described above.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

真心难拥有 2025-02-20 14:24:30

您可以从Zoo软件包中使用Na.Approx。根据文档的功能:

用插值值替换每个NA的通用函数。

代码:

df <- data.frame(rates = c(0.66, NA, NA, NA, 0.77, 0.75, 0.79, NA, NA, 0.79))

library(zoo)
df$new_rates <- na.approx(df$rates)
df
#>    rates new_rates
#> 1   0.66    0.6600
#> 2     NA    0.6875
#> 3     NA    0.7150
#> 4     NA    0.7425
#> 5   0.77    0.7700
#> 6   0.75    0.7500
#> 7   0.79    0.7900
#> 8     NA    0.7900
#> 9     NA    0.7900
#> 10  0.79    0.7900

在2022-07-05创建的 reprex软件包(v2.0.1)

You could use na.approx from the zoo package. The function according to document:

Generic functions for replacing each NA with interpolated values.

Code:

df <- data.frame(rates = c(0.66, NA, NA, NA, 0.77, 0.75, 0.79, NA, NA, 0.79))

library(zoo)
df$new_rates <- na.approx(df$rates)
df
#>    rates new_rates
#> 1   0.66    0.6600
#> 2     NA    0.6875
#> 3     NA    0.7150
#> 4     NA    0.7425
#> 5   0.77    0.7700
#> 6   0.75    0.7500
#> 7   0.79    0.7900
#> 8     NA    0.7900
#> 9     NA    0.7900
#> 10  0.79    0.7900

Created on 2022-07-05 by the reprex package (v2.0.1)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文