【发布时间】:2020-07-22 14:25:33
【问题描述】:
我有一个表 t,其中 x 和 y 值在 x 的每 10 个整数之间间隔开(value 列),例如:
value -20 -10 0 24 40 55
1 100 41700 41700 41700 41700 41800 41700
2 90 40200 40600 40700 40800 40800 40800
3 80 39200 39700 39800 40000 40000 39900
4 70 38200 38800 38800 39000 39100 39000
5 60 37200 37800 37900 38000 38200 38200
6 50 36200 36700 36900 37000 37000 37000
7 40 35400 35900 36200 36300 36300 36400
8 30 34600 35300 35600 35800 35800 35900
9 20 33700 34600 34800 35200 35100 35100
10 10 31600 33700 33800 34000 33900 33900
11 0 30000 30000 26500 30700 30100 30100
现在,表格是 11 行 x 7 列。我的目标是在所有 6 列中为 0 到 100 之间的每个整数 线性插入值,以便最终的表是 101 行 x 7 列。
我可以使用以下方法分别插入每一列:
x <- t$value
y <- t$`-20`
plot(x, y, main = "-20 mv", xlab = "soc", ylab = "temp", pch = 20)
points(approx(x, y, xout = 0:100), col ="blue", pch = 1)
任何人都可以建议使用dplyr 或data.table 或基本R 的更快方法,并使用一些命令将其应用于整个表吗?
数据:
dput(t)
structure(list(value = c(100L, 90L, 80L, 70L, 60L, 50L, 40L,
30L, 20L, 10L, 0L), `-20` = c(41700L, 40200L, 39200L, 38200L,
37200L, 36200L, 35400L, 34600L, 33700L, 31600L, 30000L), `-10` = c(41700L,
40600L, 39700L, 38800L, 37800L, 36700L, 35900L, 35300L, 34600L,
33700L, 30000L), `0` = c(41700L, 40700L, 39800L, 38800L, 37900L,
36900L, 36200L, 35600L, 34800L, 33800L, 26500L), `24` = c(41700L,
40800L, 40000L, 39000L, 38000L, 37000L, 36300L, 35800L, 35200L,
34000L, 30700L), `40` = c(41800L, 40800L, 40000L, 39100L, 38200L,
37000L, 36300L, 35800L, 35100L, 33900L, 30100L), `55` = c(41700L,
40800L, 39900L, 39000L, 38200L, 37000L, 36400L, 35900L, 35100L,
33900L, 30100L)), class = "data.frame", row.names = c(NA, -11L
))
【问题讨论】:
-
您是否只想绘制原因?
-
不,我只需要创建一个表
标签: r dplyr data.table interpolation