我有一个带有多列的收件箱,我想用"聚结"将其变成一列.每个现有列都是每个位置(行)的不同深度数据源.我需要最终的"深度"列,其中从该行中 Select 第一个非NA值.
我的数据充满了NA值,其中数值稀疏,如下所示:
df <- data.frame(col1=c("A","B","C","D"), col2=c(NA,NA,NA,NA), col3=c(-94.2,-95.3,NA,NA),col4=c(-91.2,NA,-90.7,-90.9)
df
col1 col2 col3 col4
1 A NA -94.2 -91.2
2 B NA -95.3 NA
3 C NA NA -90.7
4 D NA NA -90.9
我希望它看起来像这样:
col1 col2 col3 col4 depth
1 A NA -94.2 -91.2 -94.2
2 B NA -95.3 NA -95.3
3 C NA NA -90.7 -90.7
4 D NA NA -90.9 -90.9
我try 使用以下代码来做到这一点:
df %>% mutate(depth = coalesce(2:4)
并且还
df %>% coalesce(2:4)
但只收到错误:
Err或 in `mutate()`:
ℹ In argument: `depth = coalesce(2:4)`.
Caused by err或:
! `depth` must be size 4 或 1, not 3.
或
Err或 in `coalesce()`:
! Can't recycle `..1` (size 4) to match `..2` (size 3).
我已经判断过了,框架中的所有列都是相同的长度.
I would appreciate any help, I can't find any similar questions 或 guidance online! Thanks