R数据表问题

时间:2011-07-12 15:46:10

标签: r

我在使用R中的数据表时遇到了问题。这可能非常简单但我无法在任何地方找到解决方案。

以下是我所拥有的: 假设t是数据表

colNames <- names(t)
for (col in colNames) {
    print (t$col)
}

当我这样做时,它会打印出NULL。但是,如果我手动执行,它可以正常工作 - 比如列名称是“sample”。如果我在R提示符中键入t $“sample”,它可以正常工作。我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

您需要t[[col]]; t$col做了一种奇怪的评估形式。

编辑:合并@joran的解释:

t$col尝试在列表'col'中找到一个名为t的元素,而不是您在名为col的变量中存储为值的内容。

  • $方便交互式使用,因为它更短,可以跳过引号(即t$foot[["foo"]]。它还可以部分匹配,这非常方便,但在特殊情况下可能会有危险或令人困惑:即如果列表包含元素foolicious,则t$foo将检索它。因此它一般建议用于编程。
  • [[可以采用文字字符串("foo")或存储在变量(col)中的字符串,也不进行部分匹配。通常建议用于编程(尽管以交互方式使用它没有任何害处)。