有没有一种方法可以在数据帧中每隔一行进行选择



我有一个数据帧,我想只保留奇数行,我该如何做到这一点?

我们可以使用逻辑索引作为回收向量来从原始数据集中每隔一行返回一次

df1[c(TRUE, FALSE),]

另一个选项可以像这样在所有行中测试模块(我使用了伪数据(。%%可帮助您使用值测试模块。如果您想要奇数行,您可以提取与两个模块不同的行(1:nrow(d)%%2!=0(。1:nrow(d)是用于评估行的顺序索引。这里的代码:

#Code
dnew <- d[1:nrow(d)%%2!=0,]

输出:

col1 col2 col3 col4 col5
1     4    4    1    4    Y
3     6    3    3    2    N
5     3    3    3    3    N
7     5    5    5    2    Y
9     6    6    6    6    N
11    2    2    2    2    N
13    0    0    0    0    Y
15    6    6    6    3    N
17    9    1    9    8    N

使用的一些数据:

#Data
d <- structure(list(col1 = c(4, 5, 6, 4, 3, 4, 5, 5, 6, 9, 2, 1, 0, 
3, 6, 7, 9), col2 = c(4, 2, 3, 4, 3, 3, 5, 6, 6, 9, 2, 1, 0, 
3, 6, 7, 1), col3 = c(1, 2, 3, 4, 3, 4, 5, 5, 6, 9, 2, 1, 0, 
3, 6, 7, 9), col4 = c(4, 5, 2, 4, 3, 4, 2, 5, 6, 5, 2, 3, 0, 
3, 3, 7, 8), col5 = structure(c(2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 
1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L), .Label = c("N", "Y"), class = "factor")), class = "data.frame", row.names = c(NA, 
-17L))

最新更新