#DATA
A = structure(c(NA, 1L, NA, NA, NA, 2L, NA, NA, 1L, 3L, NA, NA, 2L,
4L, NA, 1L, 3L, 5L, 1L, 2L, 4L, NA, 2L, 3L, 5L, NA, 3L, 4L, 6L,
NA, 4L, 5L, NA, NA, 5L, NA, NA, NA, 6L, NA), .Dim = c(4L, 10L
))
#INPUT
A
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] NA NA 1 2 3 4 5 6 NA NA
#[2,] 1 2 3 4 5 NA NA NA NA NA
#[3,] NA NA NA NA 1 2 3 4 5 6
#[4,] NA NA NA 1 2 3 4 5 NA NA
的直接的方法是通过将各行去(使用lapply
或apply
)并提取从各行的前5个非NA元素。
A_out = do.call(rbind, lapply(1:NROW(A), function(i) A[i,][!is.na(A[i,])][1:5]))
OR
A_out = t(apply(X = A, MARGIN = 1, function(x) x[!is.na(x)][1:5]))
#OUTPUT
A_out
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 2 3 4 5
#[2,] 1 2 3 4 5
#[3,] 1 2 3 4 5
#[4,] 1 2 3 4 5
你应该表现出到目前为止,如果你想获得有意义的帮助,你已经尝试了什么。 – Zach