我有一个字符矩阵,并且有许多 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 的存在会覆盖聚合。