‘’;对于R中的因子没有意义

‘’;对于R中的因子没有意义,r,R,我需要从数据帧中排除变量“PABI”。因此,我将其细分如下: MyData4 <- subset(MyData, PROV=="PABI") newdata <- MyData[!MyData4] 为什么不干脆做: newdata <- subset(MyData, PROV!="PABI") newdata仅适用于逻辑变量。但是,您的子集调用返回的是data.frame,而不是逻辑帧;因此出现了错误。实际上,您只需在第一行中反转条件: newdata <- subs

我需要从数据帧中排除变量“PABI”。因此,我将其细分如下:

MyData4 <- subset(MyData, PROV=="PABI")
newdata <- MyData[!MyData4]
为什么不干脆做:

newdata <- subset(MyData, PROV!="PABI")

newdata
仅适用于逻辑变量。但是,您的
子集
调用返回的是data.frame,而不是逻辑帧;因此出现了错误。实际上,您只需在第一行中反转条件:

newdata <- subset(MyData, PROV != "PABI")

newdata我认为OP在一个因子上使用了
subset
。否则这就没有意义了。@BrodieG OP说的是“data.frame”,而且由于您不能对某个因子进行子集划分,因此错误消息会有所不同(“error in subset.default(…)”)。事实上,使用data.frame,您将准确地得到问题中的错误消息。您可以对一个因子进行子集:
子集(因子(字母),字母!=“z”)
但是,是的,您对实际错误的评论是正确的。我从未想过否定数据帧。我认为你是对的,不过为了让人恼火,因子的错误实际上是相同的;)<代码>系数(字母)[!系数(字母)]
请提供有关数据的其他详细信息。
MyData
是一个因素吗?
newdata <- subset(MyData, PROV != "PABI")
has_PABI <- MyData$PROV == "PABI"
newdata <- MyData[! has_PABI]