我想通过向它应用两个条件来对数据集进行子集合。当我附加数据帧时,应用第一个条件,分离数据帧,重新附加,应用第二个条件并再次分离,得到预期结果,一个包含9个观察值的数据框。R中的连接/分离行为非常奇怪
当然,在应用第二个条件之前,您通常不会分开/连接。所以我附上,将这两个条件相互适用,然后分离。但现在的结果是不同的:这是一个有24个观测值的数据框。除了其中的5个观察值外,其余所有数据都只由NA值组成。
我知道有很多关于使用attach的建议,并且我明白它很危险,因为很容易忽略仍然处于活动状态的附加语句。这里我的观点是另一回事。我看到一种我无法理解的行为。我正在使用R Studio 0.99.465和64位-R 3.2.1。
因此,这里的代码,第一个版本是笨拙,但产生正确的结果(DF 9个观察,所有的非NA):
df <- expand.grid(early_vvl=c(0,1), inter_churn=c(0,1), inter_new_contract=c(0,1), late_vvl=c(0,1), late_no_reaction=c(0,1))
attach(df)
df <- df[(1-early_vvl) >= inter_churn + inter_new_contract + late_vvl,]
detach(df)
attach(df)
df <- df[early_vvl <= late_no_reaction,]
detach(df)
现在有24个观测产生的数据帧的一个,其中大部分仅由NA值组成:
df <- expand.grid(early_vvl=c(0,1), inter_churn=c(0,1), inter_new_contract=c(0,1), late_vvl=c(0,1), late_no_reaction=c(0,1))
attach(df)
df <- df[(1-early_vvl) >= inter_churn + inter_new_contract + late_vvl,]
df <- df[early_vvl <= late_no_reaction,]
detach(df)
我很困惑。有人明白为什么第二个版本会产生不同的结果吗?
......从而表明为什么要避免附加。 –
非常感谢照明快速,清晰和全面的答案!这是我最后一次使用附件... – MightyCurious