如何选择R中每5个其他观测值?
我有一个数据集,其中包含10个“房子”,每天每分钟都有能源生产。像这样:如何选择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
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)