无法访问数据帧列

时间:2014-10-17 22:26:32

标签: r

当我打印结果时,我在结果3列数据框中有一些数据:

 results

TIMESTAMP                 SYMBOL_NAME         "t.price"
1 2014-10-17 14:00:00       GOOG                   400.25

注意""围绕t.price栏

当我访问t.price列时,它会返回null。

 results$t.Price
 NULL

当我做的时候

  names(results)   

我看到了

[1] "TIMESTAMP"        "SYMBOL_NAME"        "\"t.PRICE\"" 

你能告诉我发生了什么以及为什么""正在出现或我如何访问t.price?

3 个答案:

答案 0 :(得分:3)

试试这个:

names(results) <- make.names( names(results) )

使用read.table及其后代时应用的功能相同。

答案 1 :(得分:3)

您可以使用gsub

删除多余的引号
results
#             TIMESTAMP SYMBOL_NAME "t.price"
# 1 2014-10-17 14:00:00        GOOG    400.25
results$t.price
# NULL
names(results)[3] <- gsub('\"', "", names(results)[3])
results$t.price
# [1] 400.25

为了安全起见,您可能希望在数据集的所有名称上运行它(只需删除[3])。

答案 2 :(得分:3)

无论数据框的来源是什么,t.Price列都会被引号括起来。这些反过来由\转义为\ as,否则“”将是0长度的字符串的结尾。

注释建议解决此问题的方法,您可以通过列的索引或重命名列来访问它,这可以通过分配名称来完成。

names(results) <- c("name1", "name2", "name3")