当前位置:  开发笔记 > 编程语言 > 正文

奇怪的行为从R中的data.frame中删除列

如何解决《奇怪的行为从R中的data.frame中删除列》经验,为你挑选了1个好方法。

从data.frame中删除列时遇到了一个奇怪的行为.最初我有:

> a <- data.frame("a" = c(1,2,3), "abc" = c(3,2,1)); print(a)
  a abc
1 1   3
2 2   2
3 3   1

现在,我a$a从data.frame中删除

> a$a <- NULL; print(a)
  abc
1   3
2   2
3   1

正如所料,abc我的data.frame中只有列.但是当我尝试引用已删除的列时,奇怪的部分开始了a.

> print(a$a)
[1] 3 2 1
> print(is.null(a$a))
[1] FALSE

它看起来像R返回的值a$abc而不是NULL.

当剩余列名称的开头与已删除列的名称完全匹配时,会发生这种情况.

这是一个错误还是我错过了什么?



1> Luciano Selz..:

从帮助.?$

name:文字字符串或名称(可能是引号引用).对于提取,这通常(参见"环境"下)部分匹配对象的名称.

这是正常行为,因为名称部分匹配.有关部分匹配的详细信息,请参阅?pmatch.

干杯

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有