r - 如何将 na.approx 应用于矩阵中的一行?
问题描述
我正在尝试对数据框中的所有行进行插值。我正在使用apply(data_final,2,na.approx)
. 这会对值进行插值,但有些超出范围。
如果我na.approx(data_final[8,])
改为使用,与使用apply
.
另外,如果我这样做,na.approx(data_final)
我会得到与apply(data_final,2,na.approx)
. 这没有任何意义,因为据说 apply 正在将na.approx
函数应用于数据框中的每一行。
应用(data_final,2,na.approx)[8,] 0.63 0.49 2.40 2.65 3.65 5.80 0.96 1.85 1.43 1.25 1.21 1.20 0.91 1.00 0.96 0.80 1.42 1.82 1.910
na.approx(data_final[8,]) [1] 0.630 0.490 0.584 0.678 0.772 0.866 0.960 1.850 1.430 1.250 1.210 1.200 0.910 1.000 0.960 0.800 1.420 1.820 1.910 1.780 1.620 [22] 1.650 1.380 1.370
解决方案
因为na.approx
按列计算而不是按行计算。根据?na.approx
(from zoo
),用法是
na.approx(对象,...)
参数描述为
如果 obj 有多于一列,则将上述策略应用于每一列。
使用可重现的示例
library(zoo)
df1 <- data.frame(col1 = c(2, NA, 3, 4), col2 = c(1, 3, NA, 2))
na.approx(df1)
# col1 col2
#[1,] 2.0 1.0
#[2,] 2.5 3.0
#[3,] 3.0 2.5
#[4,] 4.0 2.0
列式应用na.approx
sapply(df1, na.approx)
# col1 col2
#[1,] 2.0 1.0
#[2,] 2.5 3.0
#[3,] 3.0 2.5
#[4,] 4.0 2.0
推荐阅读
- c# - How to set inner join in linq query
- git - 在google colab中从cpu切换到gpu时如何保留会话数据?
- apache-camel - Camel blueprint
waiting for dependencies${header.uriPattern} - pandas - How to use 2 parameters for apply-method in pandas
- c# - Can i change O365 connector default port 25 to 587 or something else
- javascript - How react can run in views folder?
- powerbi - 根据同一列中的多个值计算一个值
- apache-kudu - 在 windows 机器的 docker 中安装 apache kudu
- excel - 如何在Excel中建立每天的累计金额?
- mysql - 获取最近 3 条记录