r - 将多个二项式列构造为一列
问题描述
我有一个看起来像这样的数据集:
X1 X2 X3
Red NA NA
NA Blue NA
NA Green NA
NA NA Red
NA Yellow NA
NA NA Blue
我需要以这种形式转换:
Result
Red
Blue
Green
Red
Yellow
Blue
先感谢您。
解决方案
中base R
,我们可以使用max.col
data.frame(Result = df1[cbind(seq_len(nrow(df1)),
max.col(!is.na(df1), 'first'))])
-输出
# Result
#1 Red
#2 Blue
#3 Green
#4 Red
#5 Yellow
#6 Blue
数据
df1 <- structure(list(X1 = c("Red", NA, NA, NA, NA, NA), X2 = c(NA,
"Blue", "Green", NA, "Yellow", NA), X3 = c(NA, NA, NA, "Red",
NA, "Blue")), class = "data.frame", row.names = c(NA, -6L))
推荐阅读
- azure - 从 Azure 存储表中删除数据的最快方法是什么?
- c++ - 首先定义在这里
- c# - 具有行、列分组和子报表的 rdlc 报表
- delphi - JEDI JVScheduleEvents 用法
- python - 错误:找不到满足要求的版本 tensorflow==2.1.0 和 No matching distribution found for tensorflow==2.1.0
- powershell - 将存档 zip 文件解压缩到与存档 zip 文件同名的文件夹中
- realm - keycloak API 出现 403 错误
- angular - 当 JSON 字段名称中有空格时,将来自 Web 服务的 JSON 响应映射到 Angular 类
- javascript - 在反应本机导航屏幕之间切换时,PanGesture 动画不起作用
- reactjs - 将 CRA 捆绑到单个 js 文件中