【发布时间】:2015-03-11 11:31:07
【问题描述】:
如果我想检查一个变量是否继承自某个类,我可以使用is 或inherits。
class(letters)
## [1] "character"
is(letters, "character")
## [1] TRUE
inherits(letters, "character")
## [1] TRUE
我应该使用哪个偏好,它们是否会返回不同的值?
【问题讨论】:
-
@Richie 正如您提出并回答了这个问题,您能否将
"character" %in% class(letters)包含在您的问题/答案中?我对这篇文章的理解是它相当于继承,只是速度较慢,但我不确定。 -
@Moody_Mudskipper 是的,这也可以,虽然代码的意图不太清楚,所以我不确定你什么时候想要使用它。
-
我在这个答案中使用了它,例如:stackoverflow.com/questions/18746456/simplified-dput-in-r。
is.list(iris)是TRUE但"list" %in% class(iris)和inherits(iris,"list")是FALSE,这对于区分 data.frames 和列表很有用。我是否应该明白,为了敲钉子,后两者确实是等价的,并且您在所有情况下都推荐inherits?顺便说一句,你漂亮的数据营课程把我带到了这里。
标签: r inheritance r-faq