Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CRAN-R:数据帧错误或违反语义?_R_Subset - Fatal编程技术网

CRAN-R:数据帧错误或违反语义?

CRAN-R:数据帧错误或违反语义?,r,subset,R,Subset,今天,由于数据帧子集操作,我的代码中遇到了一个bug。我想知道我发现的问题是bug还是违反了R语义 我正在运行RHEL x86_64,带有R2.15.2-61015(不给糖就捣蛋)。我正在使用基本包中的子集操作 以下代码应是可复制的,并在为本试验目的而启动的干净R控制台上运行 >teste <-data.frame(teste0=c(1,2,3),teste1=c(3,4,5)) >teste0<-1 >teste1<-1 >subset(teste,

今天,由于数据帧子集操作,我的代码中遇到了一个bug。我想知道我发现的问题是bug还是违反了R语义

我正在运行RHEL x86_64,带有R2.15.2-61015(不给糖就捣蛋)。我正在使用基本包中的子集操作

以下代码应是可复制的,并在为本试验目的而启动的干净R控制台上运行

>teste <-data.frame(teste0=c(1,2,3),teste1=c(3,4,5))
>teste0<-1
>teste1<-1

>subset(teste,teste[,"teste0"]==1 & teste[,"teste1"]==1)
[1] teste0 teste1
<0 rows> (or 0-length row.names)

>subset(teste,teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1)
teste0 teste1
1      1      3
2      2      4
3      3      5
我希望这两个子集操作都会产生一个空数据帧。但是,第二个返回完整的数据帧。这是一个bug还是我遗漏了一些关于R环境和名称空间的信息

谢谢你的帮助, 米格尔在本声明中:

subset(teste,teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1)
teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1
teste0表示teste$teste0。测试1也一样

在本声明中:

subset(teste,teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1)
teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1
teste0和teste1是您在上面定义的向量(不是数据帧的成员)。

在此语句中:

subset(teste,teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1)
teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1
teste0表示teste$teste0。测试1也一样

在本声明中:

subset(teste,teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1)
teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1

teste0和teste1是您在上面定义的向量(不是数据帧的成员)。

这绝对不是错误。这绝对不是错误。@Mathew谢谢!你能给我推荐一个我可以详细阅读的来源吗?请参阅帮助(子集),尤其是例子。@Mathew well,这让我觉得很愚蠢。。。基本上,我定义的向量在子集函数中改变了它们的性质。我想知道的是,在R中,这种情况通常是什么时候发生的,不仅仅是在这个特殊的情况下。因为我想这是很平常的事?再次感谢。@mmgm您可以从阅读R中的工作原理开始,这个问题可能会有所帮助。@mmgm:subset函数创建一个本地环境,其中列名被添加到搜索路径中,不需要引用。这就是所谓的“非标准评估”,实际上这种情况经常发生。甚至键入
help(subset)
也是一个例子,因为“标准”调用是
help('subset')
。使用
with
in
transform
可以看到类似的行为@Mathew谢谢!你能给我推荐一个我可以详细阅读的来源吗?请参阅帮助(子集),尤其是例子。@Mathew well,这让我觉得很愚蠢。。。基本上,我定义的向量在子集函数中改变了它们的性质。我想知道的是,在R中,这种情况通常是什么时候发生的,不仅仅是在这个特殊的情况下。因为我想这是很平常的事?再次感谢。@mmgm您可以从阅读R中的工作原理开始,这个问题可能会有所帮助。@mmgm:subset函数创建一个本地环境,其中列名被添加到搜索路径中,不需要引用。这就是所谓的“非标准评估”,实际上这种情况经常发生。甚至键入
help(subset)
也是一个例子,因为“标准”调用是
help('subset')
。使用
with
in
transform
可以看到类似的行为。