r - 插值以获得 R 中的某个值
问题描述
我正在使用 1501 x 35 值的数据框,数据如下表所示:
日期 | 1 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
20 年 10 月 2 日 | 0.04919382 | 0.04962555 | 0.04579872 | 0.0354689 | 0.048592 |
20/05/20 | 0.04909930 | 0.04957330 | 0.0458772 | 0.04741 | 0.052167 |
20 年 12 月 8 日 | 0.04909930 | 0.04957330 | 0.04525272 | 0.035544 | 0.045489 |
18/10/20 | 0.04915135 | 0.04957330 | 0.047822 | 0.03485484 | 0.024452 |
我想通过插值获得“第 2 列”的数据。
我试过了result<- approx(data$1, data$2, xout = data$2, method = 'linear')
但它没有用,结果是错误的。我也尝试过,approxfun
但它返回 50 个值而不是 1501。如何进行正确的线性插值?
非常感谢。
解决方案
我相信你想要的是这个。目前没有什么可以插值的,你NA
首先需要一个列。你可以append
在第二个位置之后。
(d <- as.data.frame(append(d, list(X2=NA), 2)))
# Date X1 X2 X3 X4 X5 X6
# 1 2020-02-10 0.04919382 NA 0.04962555 0.04579872 0.03546890 0.048592
# 2 2020-05-20 0.04909930 NA 0.04957330 0.04587720 0.04741000 0.052167
# 3 2020-08-12 0.04909930 NA 0.04957330 0.04525272 0.03554400 0.045489
# 4 2020-10-18 0.04915135 NA 0.04957330 0.04782200 0.03485484 0.024452
现在你想要逐行apply
的函数,即使用. 逻辑是,你给它提供一系列长度的值进行插值,即每次迭代的 s以及包含s的值本身。从你想要的输出中,因为它是整个(转置)矩阵,所以只是 row 。approx
MARGIN=1
x
apply
seq(x)
NA
x
y
[2,]
d$X2 <- apply(d[-1], MARGIN=1, function(x) approx(seq(x), x, seq(x))$y)[2,]
d
# Date X1 X2 X3 X4 X5 X6
# 1 2020-02-10 0.04919382 0.04940968 0.04962555 0.04579872 0.03546890 0.048592
# 2 2020-05-20 0.04909930 0.04933630 0.04957330 0.04587720 0.04741000 0.052167
# 3 2020-08-12 0.04909930 0.04933630 0.04957330 0.04525272 0.03554400 0.045489
# 4 2020-10-18 0.04915135 0.04936232 0.04957330 0.04782200 0.03485484 0.024452
数据:
d <- structure(list(Date = structure(c(18302, 18402, 18486, 18553), class = "Date"),
X1 = c(0.04919382, 0.0490993, 0.0490993, 0.04915135), X3 = c(0.04962555,
0.0495733, 0.0495733, 0.0495733), X4 = c(0.04579872, 0.0458772,
0.04525272, 0.047822), X5 = c(0.0354689, 0.04741, 0.035544,
0.03485484), X6 = c(0.048592, 0.052167, 0.045489, 0.024452
)), row.names = c(NA, -4L), class = "data.frame")
推荐阅读
- javascript - 当状态改变时,我的整个 React 组件是否会不必要地重新渲染?
- c# - 如何在 Angular 6/8 的弹出对话框屏幕中显示项目列表
- javascript - 无法读取未定义的某些属性(React/Javascript)
- r - 使用 pdf_text 将几个 PDF 文件读入 R
- php - 从 PHP 连接到 MSSQL Server
- php - 我已将 php 版本 7.2 升级到 7.4,现在在 myphpadmin 面板中出现错误。我附上屏幕短片
- amazon-web-services - Yaml ">" 将多行连接为多个字符串,而不是 AWS::ECS::TaskDefinition 中的单个字符串
- laravel - Laravel 可选参数,路径中带有斜线
- ansible - 如何在ansible中使用过滤器从字符串中提取值
- go - 如何从数据存储返回的对象中检索关键对象