我有一个带数字和NA的矩阵。 我希望像
一样显示这个矩阵 N09
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11
1 0 7 0 0 0 9 NA NA NA NA NA
2 0 7 7 8 0 9 NA NA NA NA NA
3 0 8 11 7 7 9 NA NA NA NA NA
4 0 7 0 1 1 9 NA NA NA NA NA
5 0 3 3 3 11 9 NA NA NA NA NA
6 0 7 7 7 7 9 NA NA NA NA NA
7 0 4 0 0 0 9 NA NA NA NA NA
8 0 1 0 7 1 9 NA NA NA NA NA
9 0 1 0 0 0 9 NA NA NA NA NA
10 0 0 6 8 7 9 NA NA NA NA NA
11 0 0 1 1 0 9 NA NA NA NA NA
示例:
9 to : 1 1 3 1
10 to : 2 1 1 1 1
我该怎么办?
答案 0 :(得分:1)
尝试
lst <- apply(N09, 1, function(x) unname(rle(x[!is.na(x)])$lengths))
lst[9:10]
#$`9`
#[1] 1 1 3 1
#$`10`
#[1] 2 1 1 1 1
如果您需要string
格式
str1 <- paste(seq_along(lst), 'to :', unname(sapply(lst, paste, collapse=' ')))
str1[9:10]
#[1] "9 to : 1 1 3 1" "10 to : 2 1 1 1 1"
N09 <- structure(c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 7L,
8L, 7L, 3L, 7L, 4L, 1L, 1L, 0L, 0L, 0L, 7L, 11L, 0L, 3L, 7L,
0L, 0L, 0L, 6L, 1L, 0L, 8L, 7L, 1L, 3L, 7L, 0L, 7L, 0L, 8L, 1L,
0L, 0L, 7L, 1L, 11L, 7L, 0L, 1L, 0L, 7L, 0L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = c(11L,
11L), .Dimnames = list(c("1", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "11"), c("V1", "V2", "V3", "V4", "V5", "V6", "V7",
"V8", "V9", "V10", "V11")))