【发布时间】:2020-03-11 23:40:34
【问题描述】:
我有一个大型数据集,我想选择该列中的每 n 列和每 n 行。
在这个例子中,如果我想要每第二列和每第二行,我会得到 9 和 11 第一和 6 和 8 第二。
x <- data.frame("x1" = c(1:4), "y1" = c(8:11), "x2" = c(14:17), "y2" = c(5:8))
x
【问题讨论】:
我有一个大型数据集,我想选择该列中的每 n 列和每 n 行。
在这个例子中,如果我想要每第二列和每第二行,我会得到 9 和 11 第一和 6 和 8 第二。
x <- data.frame("x1" = c(1:4), "y1" = c(8:11), "x2" = c(14:17), "y2" = c(5:8))
x
【问题讨论】:
这行得通:
x[seq_len(nrow(x)) %% 2 == 0, seq_len(ncol(x)) %% 2 == 0]
#> y1 y2
#> 2 9 6
#> 4 11 8
【讨论】:
我们可以使用向量回收:
n <- 2
inds <- c(rep(FALSE, n - 1), TRUE)
x[inds, inds]
# y1 y2
#2 9 6
#4 11 8
【讨论】: