【发布时间】:2020-06-23 22:39:17
【问题描述】:
我有一个客户数据数据框。它有 3 列电话号码。 类似于下表:
x <- data.frame("Phone1" = c(123,"NULL",245), "Phone2" = c("NULL","NULL",325 ), "Phone3" = c(847,219,"NULL"))
> View(x)
> x
Phone1 Phone2 Phone3
1 123 NULL 847
2 NULL NULL 219
3 245 325 NULL
现在,我想重新排列这些列中的值,使 NON-NULL 值排在第一位,并将每条记录的 NULL 值推到最后。这就是我想要的输出:
Phone1 Phone2 Phone3
1 123 847 NULL
2 219 NULL NULL
3 245 325 NULL
我尝试使用一系列 if 语句来执行此操作,但这需要很长时间,因为我的原始数据框有很多记录。我想知道是否有更简单的方法使用 dplyr 或其他可以帮助解决此问题的软件包。
【问题讨论】:
-
您的执行结果与您输入的数据不一致:
847在Phone3,而不是Phone2。