r - 将 na.fill 应用于每一列
问题描述
我有一个如下所示的数据集:
Col1 Col2 Col3 Col4 Col5
A B 4 5 7
G H 5 6 NA
H I NA 9 8
K F 9 NA NA
E L NA 8 9
H I 1 0 10
如何将该na.fill()
函数应用于 Col2 之后的所有列?
如果我要单独做,它会是这样的:
df$Col3<-na.fill(df$Col3, c(NA, "extend", NA))
df$Col4<-na.fill(df$Col4, c(NA, "extend", NA))
df$Col5<-na.fill(df$Col5, c(NA, "extend", NA))
问题是我的实际数据框有 100 多列。有没有一种快速的方法可以将此函数应用于前 2 个之后的所有列?
解决方案
na.fill
确实处理多个列。真的不需要使用lapply
,mutate
等。只需将相关列替换为na.fill
在这些相同列上运行的结果即可。如果您知道是什么ix
,那么您可以用它替换第一行,以便在本例中我们可以交替使用ix <- 3:5
or ix <- -(1:2)
。
ix <- sapply(DF, is.numeric)
replace(DF, ix, na.fill(DF[ix], c(NA, "extend", NA)))
给予:
Col1 Col2 Col3 Col4 Col5
1 A B 4 5.0 7.0
2 G H 5 6.0 7.5
3 H I 7 9.0 8.0
4 K F 9 8.5 8.5
5 E L 5 8.0 9.0
6 H I 1 0.0 10.0
请注意,您可以交替使用na.approx
:
replace(DF, ix, na.approx(DF[ix], na.rm = FALSE))
笔记
Lines <- "Col1 Col2 Col3 Col4 Col5
A B 4 5 7
G H 5 6 NA
H I NA 9 8
K F 9 NA NA
E L NA 8 9
H I 1 0 10"
DF <- read.table(text = Lines, header = TRUE, as.is = TRUE, strip.white = TRUE)
推荐阅读
- python - Python 嵌套字典 - 将数据附加到嵌套字典而不覆盖以前的数据
- mongodb - mongodb kafka sink 延迟
- validation - NestJS 是否有可能使用不同的验证库?
- c# - Telerik RadHTMLChart 添加不在数据集中的空 xaxis 点
- localization - 根据 WiX 中的系统区域设置更改引导程序语言
- python - 自动登录到 travian 王国 - selenium python
- c# - 从可观察的集合中接收数据并保存/转发
- vue.js - Vue-google-chart 如何添加过滤器类别
- flutter - 颤振堆栈循环 - 由以前的堆栈元素剪辑?
- python - 我该如何解决这个python错误?权限错误:[WinError 32]