通过group by和case检查r中的非NA进行突变

通过group by和case检查r中的非NA进行突变,r,mutate,R,Mutate,我正在尝试使用group by category插入基于非NA条件的列文本,并使用下面的代码键入R。Test1是生成的数据帧。但分组讨论并没有发生 Category=c("A","A","A","B","B","B") Type=c("P","P","R","S","S",&qu

我正在尝试使用group by category插入基于非NA条件的列文本,并使用下面的代码键入R。Test1是生成的数据帧。但分组讨论并没有发生

Category=c("A","A","A","B","B","B")
Type=c("P","P","R","S","S","S")
Col1=c("ABCD","","","","wxyz","")
Col2=c("","","MTNL","","","")
Col3=c("","PQRS","","","","")
Col4=c("","","","","","")
Col5=c("","","","","","")
Col6=c("","","","","","EFGH")
Test=data.frame(Col1,Col2,Col3,Col4,Col5,Col6)

Text=c("PQRS","PQRS","MTNL","EFGH","EFGH","EFGH")
Test1=data.frame(Col1,Col2,Col3,Col4,Col5,Col6,Text)

Test1=Test %>%
  group_by(Category, Type) %>% 
  mutate(
    Text = case_when(
      !is.na(`Col6`) ~ `Col6`,
      !is.na(`Col5`) ~ `Col5`,
      !is.na(`Col4`) ~ `Col4`,
      !is.na(`Col3`) ~ `Col3`,
      !is.na(`Col2`) ~ `Col2`,
      !is.na(`Col1`) ~ `Col1`,
      TRUE                      ~  as.character(NA)
    )
  )


有人能帮我解决这个问题吗

您有空值,而不是
NA
值,因此使用
is.NA
检查将不起作用。你应该做:

library(dplyr)

Test %>%
  group_by(Category, Type) %>% 
  mutate(
    Text = case_when(
      Col6 != '' ~ Col6,
      Col5 != '' ~ Col5,
      Col4 != '' ~ Col4,
      Col3 != '' ~ Col3,
      Col2 != '' ~ Col2,
      Col1 != '' ~ Col1,
      TRUE ~  NA_character_
    )
  )

# Category Type  Col1   Col2   Col3   Col4  Col5  Col6   Text 
#  <chr>    <chr> <chr>  <chr>  <chr>  <chr> <chr> <chr>  <chr>
#1 A        P     "ABCD" ""     ""     ""    ""    ""     ABCD 
#2 A        P     ""     ""     "PQRS" ""    ""    ""     PQRS 
#3 A        R     ""     "MTNL" ""     ""    ""    ""     MTNL 
#4 B        S     ""     ""     ""     ""    ""    ""     NA   
#5 B        S     "wxyz" ""     ""     ""    ""    ""     wxyz 
#6 B        S     ""     ""     ""     ""    ""    "EFGH" EFGH 
数据

Test=data.frame(Category, Type, Col1,Col2,Col3,Col4,Col5,Col6)

如何处理单元格中的NA值而不是空白值的相同问题?在
摘要中
将此部分
~.x[.x!=''][1])
更改为
~NA.ommit(.x)[1]
非常感谢。这个解决方案非常有效@罗纳克沙阿
Test=data.frame(Category, Type, Col1,Col2,Col3,Col4,Col5,Col6)