我试图合并两个数据集,这取决于对数据集的观察。
换句话说,我有两个数据集,都包含年份和州。但是,这两个数据集各包含一个额外变量,X1表示df1,X2表示df2。也就是说,如果观察到一个州的X1和X2至少有5个观察值,我将尝试合并这两个数据集,以便包括该州的所有观察值。即使X1和X2都是NA值。
是否有方法合并数据集,以便仅合并X1和X2都具有最少5个观测值的州?这样,新数据集就具有X1和X5都具有最少5个观测值的州的所有年份的观测值,而排除其余年份。
我尝试过使用inner_join(df1,df2)
进行实验,但没有成功,因为它只合并了年份和状态,两个特定数据集都有单独的观察结果。
合并效应的一个可重现的例子(为了简单起见,我使用了如果2个观测值为非NA,则包括状态)
df1 = read.table(
text =
"State Year X1
A 1 NA
A 2 NA
A 3 5
A 4 NA
B 1 NA
B 2 NA
B 3 4
B 4 3", header = TRUE)
df2 = read.table(
text =
"State Year X2
A 1 NA
A 2 5
A 3 7
A 4 NA
B 1 NA
B 2 2
B 3 5
B 4 7", header = TRUE)
newdf = read.table(
text =
"State Year X1 X2
B 1 NA NA
B 2 NA 2
B 3 4 5
B 4 3 7", header = TRUE)
这里,newdf
忽略状态A,因为df1
仅具有针对该状态的一个观测,而针对状态B包括所有年份(即使是X1
和X2
均为NA的第一年),因为X1
和X2
均具有针对该状态的2个非NA观测的最小值。(回想一下,为简单起见,此处的最小观测值为2而非5)
1条答案
按热度按时间8zzbczxx1#
您需要在合并后做进一步的过滤。