我在使用R中的数据表时遇到了麻烦.这可能非常简单,但我无法在任何地方找到解决方案.
这就是我所拥有的:假设t是数据表
colNames <- names(t)
for (col in colNames) {
print (t$col)
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,它打印NULL.但是,如果我手动执行,它可以正常工作 - 比如列名称是"sample".如果我在R提示符下键入t $"sample",它可以正常工作.我在这做错了什么?
你需要t[[col]]; t$col做一种奇怪的评估形式.
编辑:纳入@joran的解释:
t$col尝试'col'在列表中找到一个字面命名的元素t,而不是您在命名变量中存储的值col.
$方便交互使用,因为它更短,可以跳过引号(即t$foo相对于t[["foo"]].它也进行部分匹配,这非常方便,但在特殊情况下可能是危险或混乱的:即如果列表包含元素foolicious,则t$foo将检索它.因此通常不建议编程.[[可以采用文字字符串("foo")或存储在变量(col)中的字符串,并且不进行部分匹配.通常建议用于编程(尽管交互使用它没有任何害处).| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |