我有一个大型数据集,其中每一行可能有一个带有文本的单元格,而其余的都是空的。有没有办法将这些行子集在仅给定列中的文本而其余为空?
我知道我可以使用 eg tmp[tmp$A!="" & tmp$B=="" & tmp$C=="" & tmp$D=="",],但我有大约。我想为每列运行 30 列,这将是相当乏味的。我已经尝试了以下方法,但它的行为不符合预期。
tmp=data.frame(A=c("a","","","",""),
            B=c("","b","","",""),
            C=c("","","c","",""),
                D=c("","","","D",""))
#Attempting subsetting across multiple columns with tmp[,2:3]
tmp[tmp[,1]!="" & tmp[,2:3]=="",]
      A    B    C    D
1     a               
NA <NA> <NA> <NA> <NA>
#But it results in creating rows with na
tmp[tmp[,1]!="" & tmp[,2:4]=="",]
        A    B    C    D
1       a               
NA   <NA> <NA> <NA> <NA>
NA.1 <NA> <NA> <NA> <NA>
我只想结束的地方:
    A    B    C    D
 1       a               
然后将在 an 中使用ifelse(),因此如果 A 列中只有单元格带有文本,则给出 E 列文本 A,如果 B 列中只有文本给出 E 列文本 B
    A    B    C    D    E
    a                   A
         b              B
              c         C
                   d    D
建议?