如果基于另一列的 R 数据框中只有一个非 NA,如何用非 NA 替换 NA?
如果我们在 R 数据框列中只有一个非 NA 值和一个分类列,那么我们可能希望用给定的非 NA 替换 NA。为此,我们可以按照以下步骤操作 -
首先,创建一个数据框
然后借助基础 R 的 min 函数和 dplyr 包的 mutate 函数将 NA 替换为非 NA。
创建数据框
让我们创建一个数据框,如下所示 -
例子
Grp<-rep(LETTERS[1:4],each=5)Response<-rep(c(1,NA,3,NA,5,NA,10,NA),times=c(1,4,1,4,1,4,1,4))
df<-data.frame(Grp,Response)
df
执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-
输出
Grp Response1 A 1
2 A NA
3 A NA
4 A NA
5 A NA
6 B 3
7 B NA
8 B NA
9 B NA
10 B NA
11 C 5
12 C NA
13 C NA
14 C NA
15 C NA
16 D 10
17 D NA
18 D NA
19 D NA
20 D NA
用基于另一列的非 NA 替换 NA
基于 Grp 列在响应列中用非 NA 替换 NA -
例子
Grp<-rep(LETTERS[1:4],each=5)Response<-rep(c(1,NA,3,NA,5,NA,10,NA),times=c(1,4,1,4,1,4,1,4))
df<-data.frame(Grp,Response)
library(dplyr)
df%>%group_by(Grp)%>%mutate(Response=min(Response,na.rm=TRUE))
输出
# A tibble: 20 x 2# Groups: Grp [4]
Grp Response
<chr> <dbl>
1 A 1
2 A 1
3 A 1
4 A 1
5 A 1
6 B 3
7 B 3
8 B 3
9 B 3
10 B 3
11 C 5
12 C 5
13 C 5
14 C 5
15 C 5
16 D 10
17 D 10
18 D 10
19 D 10
20 D 10
以上是 如果基于另一列的 R 数据框中只有一个非 NA,如何用非 NA 替换 NA? 的全部内容, 来源链接: utcz.com/z/335622.html