【发布时间】:2022-11-21 22:31:15
【问题描述】:
我想折叠一个 < 100 列四倍的数据框, 由此代码将迭代 4 个相邻列的组并将它们合并为一个。 但是,基于每组 4 个的结果值取决于值的优先级。
例如,最高优先级为“1”,因此只要 4 列中的任何一列对该行的值为“1”,它就应该是结果值。第二个优先级为 0,如果集合中有一个 '0' 和三个 NA,则结果应该为 '0'(只要没有 '1')。最低优先级是 NA,只有完全由 NA 组成的集合才会保持 NA。下面是一个示例,下面是可重现的代码。
ID c1 c2 c3 c4 c5 c6 c7 c8
row1 1 0 0 0 1 0 0 NA
row2 NA NA NA 0 NA NA NA NA
成为
ID c1 c2
row1 1 1
row2 0 NA
structure(list(ID = c("row1", "row2"), c1 = c(1, NA), c2 = c(0,
NA), c3 = c(0, NA), c4 = c(0, 0), c5 = c(1, NA), c6 = c(0, NA
), c7 = c(0, NA), c8 = c(NA, NA)), class = "data.frame", row.names = c(NA,
-2L))
【问题讨论】:
标签: r dataframe merge concatenation