如何选择R中每5个其他观测值?

如何选择R中每5个其他观测值?,r,select,R,Select,我有一个数据集,其中包含10个“房子”,每天每分钟都有能源生产。像这样: HouseID Time KwH 1 1 X 2 1 X 3 1 X 4 1 X 5 1 X 6 1 X 7 1 X 8 1 X 9 1 X 10 1 X 1 2 X 2 2 X 3 2 X 4

我有一个数据集,其中包含10个“房子”,每天每分钟都有能源生产。像这样:

HouseID Time KwH
1       1    X
2       1    X
3       1    X
4       1    X
5       1    X
6       1    X
7       1    X
8       1    X
9       1    X
10      1    X
1       2    X
2       2    X
3       2    X
4       2    X
5       2    X
6       2    X
7       2    X
8       2    X
9       2    X
10      2    X
我想删除houseID为6到10的行,以便只剩下houseID为1、2、3、4和5的观察值。

您可以尝试

newdf <- df1[!df1$HouseID %in% 6:10,]
#   HouseID Time KwH
#1        1    1   X
#2        2    1   X
#3        3    1   X
#4        4    1   X
#5        5    1   X
#11       1    2   X
#12       2    2   X
#13       3    2   X
#14       4    2   X
#15       5    2   X

newdf假设
df
是数据帧的名称,则只需使用以下内容:

df2 <- subset(df, df$HouseID==1:5)

df2实际上,这不会按您期望的方式工作<代码>%in%
是进行此类比较所需的。而且您不需要重复
df$
子集(df,HouseID%,在%1:5中)
。与@RHertel没有太大区别,但差别不大(因为您包括而不是排除,并且使用
子集
而不是
[
-索引)…如果您非常幸运,这将起作用:它依赖于(1)房屋ID在数据框中的顺序和(2)房屋的总数量是子集长度的偶数倍,并定期重复该数量。OP的样本数据符合这些标准,但这不是一个通用的解决方案。
df2 <- subset(df, df$HouseID==1:5)