我很抱歉,如果这是一个重复的问题。基本上我有一个数据集,让我们说4列。每一个都有缺失的数据,他们是MAR。
col1 col2 col3 col4
7 4 3 7
0 4
7 10 4
5 8 7
1 9 7
8 10 5
1 4 5
3
7 10 7 5
2 2 4
7 2
9 2
6 0 9 9
3 9
6 5
0 7 6
我的目标是创建一列Col5
。
步骤1)检查是否缺少Col1,如果没有,则使用Col1中的值更新Col5
步骤2)检查列1是否缺失,如果列1缺失,则检查列2,如果列1缺失且列2未缺失,则使用列2的值更新列5的值
步骤3)如果缺少第1列和第3列,而第3列未缺少,则使用第3列中的值更新第5列
步骤4)如果缺少第1列、第2列和第3列,而第4列未缺少,则使用第4列中的值更新第5列。
步骤5)如果所有4列均缺失,则第5列为NA。
预期的最终数据集
col1 col2 col3 col4 col5
7 4 3 7 7
0 4 0
7 10 4 7
5 8 7 5
1 9 7 1
8 10 5 8
1 4 5 1
3 3
7 10 7 5 7
2 2 4 2
7 2 7
9 2 9
4 9 4
9 9
6 5 6
0 7 6 0
我可以使用3个不同的ifelse语句来完成这个任务,如果有人有一个有效的方法来完成这个任务,那会很有帮助。谢谢
1条答案
按热度按时间l2osamch1#
我们可以使用
dplyr
包中的coalesce()
函数:以上假设“缺失”值为
NA
。