如何忽略缺失的值并将其移动到位置以完成R中的数据框结构?

当我们在两列中都有替代的缺失值时,这会使数据框看起来也充满了列中替代位置的值。在这种情况下,我们可能希望删除那些丢失的值,以使数据帧变得完整而没有任何丢失的值。为此,我们可以将na.omit函数与transform函数一起使用,如以下示例所示。

示例

请看以下数据帧-

x1<-rep(c(NA,5),times=10)
x2<-rep(c(1,NA),times=10)
df1<-data.frame(x1,x2)
df1

输出结果

 x1 x2
1 NA 1
2  5 NA
3 NA 1
4  5 NA
5 NA 1
6  5 NA
7 NA 1
8  5 NA
9 NA 1
10 5 NA
11 NA 1
12 5 NA
13 NA 1
14 5 NA
15 NA 1
16 5 NA
17 NA 1
18 5 NA
19 NA 1
20 5 NA

使用单行代码替换两列中的NA-

示例

df1<-na.omit(transform(df1,x2=c(NA,x2[-nrow(df1)])))
df1

输出结果

  x1 x2
2  5 1
4  5 1
6  5 1
8  5 1
10 5 1
12 5 1
14 5 1
16 5 1
18 5 1
20 5 1

让我们看另一个例子-

示例

y1<-rep(c(15,NA,25,NA),times=5)
y2<-rep(c(NA,414,NA,425),times=5)
df2<-data.frame(y1,y2)
df2

输出结果

  y1 y2
1  15 NA
2  NA 414
3  25 NA
4  NA 425
5  15 NA
6  NA 414
7  25 NA
8  NA 425
9  15 NA
10 NA 414
11 25 NA
12 NA 425
13 15 NA
14 NA 414
15 25 NA
16 NA 425
17 15 NA
18 NA 414
19 25 NA
20 NA 425

使用单行代码替换两列中的NA-

示例

df2<-na.omit(transform(df2,y2=c(NA,y2[-nrow(df2)])))
df2

输出结果

  y1 y2
3  25 414
5  15 425
7  25 414
9  15 425
11 25 414
13 15 425
15 25 414
17 15 425
19 25 414