[英]R matrix shift by row and replace it with NA
我們可以用
x1 <- toeplitz(x[1,])
x1[lower.tri(x1)] <- NA
或者另一種選擇是
rbind(x[1,], do.call(rbind, lapply(2:nrow(x),
function(i) c(rep(NA, i-1), head(x[i,], -i+1)))))
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 2 3 4 5
#[2,] NA 1 2 3 4
#[3,] NA NA 1 2 3
#[4,] NA NA NA 1 2
#[5,] NA NA NA NA 1
你也可以使用for
,
(現在根據@Shree 的建議進行了清理):
for (i in 2:nrow(x)) x[i, ] <- c(rep(NA, (i-1)), x[i, ])[1:ncol(x)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.