如果两列都包含 R 中的缺失值,如何添加两列?
如果我们想添加 R 数据框的两列,并且每列都包含缺失值,则可以通过以下方式之一添加列 -
如果它们是数字,则添加两个列值。
如果其中一列缺少值,则返回数字。
如果两列都有缺失值,则返回 NA。
为此,我们可以借助 apply 函数和 ifelse 函数,如下面给出的示例所示。
示例 1
以下代码段创建了一个示例数据框 -
x1<-sample(c(NA,1,2),20,replace=TRUE)x2<-sample(c(NA,5),20,replace=TRUE)
df1<-data.frame(x1,x2)
df1
创建以下数据框 -
x1 x21 1 NA
2 1 5
3 2 5
4 1 5
5 2 5
6 NA NA
7 2 NA
8 1 NA
9 1 5
10 NA NA
11 1 NA
12 2 NA
13 NA NA
14 NA NA
15 1 NA
16 1 5
17 NA NA
18 1 NA
19 2 NA
20 NA 5
要添加 df1 的列,请将以下代码添加到上述代码段中 -
x1<-sample(c(NA,1,2),20,replace=TRUE)输出结果x2<-sample(c(NA,5),20,replace=TRUE)
df1<-data.frame(x1,x2)
df1$Sum<-apply(cbind(df1$x1,df1$x2),1,function(x) ifelse(all(is.na(x)),NA,sum(x,na.rm=T)))
df1
如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -
x1 x2 Sum1 1 NA 1
2 1 5 6
3 2 5 7
4 1 5 6
5 2 5 7
6 NA NA NA
7 2 NA 2
8 1 NA 1
9 1 5 6
10 NA NA NA
11 1 NA 1
12 2 NA 2
13 NA NA NA
14 NA NA NA
15 1 NA 1
16 1 5 6
17 NA NA NA
18 1 NA 1
19 2 NA 2
20 NA 5 5
示例 2
以下代码段创建了一个示例数据框 -
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE)y2<-sample(c(NA,rnorm(2)),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2
创建以下数据框 -
y1 y21 0.5109281 -0.6697566
2 NA -0.1898259
3 NA -0.1898259
4 -0.9540862 -0.6697566
5 NA -0.1898259
6 NA -0.1898259
7 NA NA
8 0.5109281 -0.6697566
9 NA NA
10 0.5109281 NA
11 0.5109281 -0.6697566
12 -0.9540862 NA
13 -0.9540862 -0.6697566
14 NA -0.1898259
15 0.5109281 -0.1898259
16 NA -0.1898259
17 0.5109281 NA
18 NA -0.6697566
19 NA -0.1898259
20 NA NA
要添加 df2 的列,请将以下代码添加到上述代码段中 -
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE)输出结果y2<-sample(c(NA,rnorm(2)),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2$Sum<-apply(cbind(df2$y1,df2$y2),1,function(x) ifelse(all(is.na(x)),NA,sum(x,na.rm=T)))
df2
如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -
y1 y2 Sum1 0.5109281 -0.6697566 -0.1588286
2 NA -0.1898259 -0.1898259
3 NA -0.1898259 -0.1898259
4 -0.9540862 -0.6697566 -1.6238429
5 NA -0.1898259 -0.1898259
6 NA -0.1898259 -0.1898259
7 NA NA NA
8 0.5109281 -0.6697566 -0.1588286
9 NA NA NA
10 0.5109281 NA 0.5109281
11 0.5109281 -0.6697566 -0.1588286
12 -0.9540862 NA -0.9540862
13 -0.9540862 -0.6697566 -1.6238429
14 NA -0.1898259 -0.1898259
15 0.5109281 -0.1898259 0.3211022
16 NA -0.1898259 -0.1898259
17 0.5109281 NA 0.5109281
18 NA -0.6697566 -0.6697566
19 NA -0.1898259 -0.1898259
20 NA NA NA
以上是 如果两列都包含 R 中的缺失值,如何添加两列? 的全部内容, 来源链接: utcz.com/z/341305.html