我有一个字符矩阵,并且有许多 NA。我想创建一个新变量,它将所有(非 NA)字符串组合成一个。所以从
(df = data.frame(matrix(c("A", "B", "C", NA, NA, "E", NA, "D", "A", "C", "B", "C", NA, "C", "A"), ncol = 3)))
    X1   X2   X3
1    A    E    B
2    B <NA>    C
3    C    D <NA>
4 <NA>    A    C
5 <NA>    C    A
那么我会
     X1   X2   X3 newvar
1    A    E    B  A:B:E
2    B <NA>    C   B:C
3    C    D <NA>   C:D
4 <NA>    A    C   A:C
5 <NA>    C    A   A:C
请注意,各个字母按字母顺序排列,所以我没有得到最后两行的"A:C"和。"C:A"
我试过了
within(df, newvar <- factor(X1:X2:X3)) 
这使
    X1   X2   X3 newvar
1    A    E    B  A:E:B
2    B <NA>    C   <NA>
3    C    D <NA>   <NA>
4 <NA>    A    C   <NA>
5 <NA>    C    A   <NA>
但是 NA 的存在会覆盖聚合。