如何使Extract.data.frame信号不存在列的错误?

时间:2013-11-06 10:47:30

标签: r dataframe

如果我在data.frame中选择一个不存在的列,则R只返回NULLNA s。

> df <- data.frame(foo=1:3,bar=4:6)
> df$fooo # note typo
NULL
> df["fooo",] # note typo
    foo bar
NA  NA  NA

有时候,这会导致很难发现的错误,因为R总是试图用结果做一些聪明的事情。我希望如果它在我尝试提取不存在的列时发出错误信号,是否有办法执行此操作?

1 个答案:

答案 0 :(得分:0)

R并没有尝试用结果做任何巧妙的事情 - 你只是通过混合行和列提取顺序来问它是错误的问题。

这是你的第二个例子,但是做得正确。请注意错误:

df <- data.frame(foo=1:3, bar=4:6)

df[, "fooo"]
# Error in `[.data.frame`(df, , "fooo") : undefined columns selected

关于使用$表示法,因为你说的是​​bug,我希望你写的是某种脚本,在这种情况下[提取通常更可靠因为您可以更好地控制部分名称匹配等内容。不过,如果你想抛出一个错误,你可以利用这个事实,如果找不到它,它将返回NULL