我正在运行我能想象到的最简单的代码。我正在做的就是要求R导入一个csv文件,选择一个列,然后显示该值。
DEXUSUK = read.csv('C:/Users/Seth Reuter/Google Drive/GSU/Financial Engineering/Final Project/DEXUSUK.csv')
ExchangeRates = DEXUSUK$DEXUSUK
我需要做的就是拉ExchangeRates[1]
,它应该返回一个值。相反,我得到了。
> ExchangeRates[1]
[1] 1.4451
2018 Levels: . 1.3658 1.3728 1.3757 1.3780 1.3811 1.3840 1.3960 1.3972 1.3974 1.3989 1.4018 1.4023 1.4034 ... 2.1104
>
那是2018 Levels
的东西是什么?我该如何摆脱它?
这就是我尝试过的。
> ExchangeRates[1]$Value
Error in ExchangeRates[1]$Value :
$ operator is invalid for atomic vectors
> ExchangeRates[1]$VALUE
Error in ExchangeRates[1]$VALUE :
$ operator is invalid for atomic vectors
> ExchangeRates[1]$value
Error in ExchangeRates[1]$value :
$ operator is invalid for atomic vectors
我正在使用的文件是here。我从联邦储备经济数据库下载了它。
答案 0 :(得分:2)
您的问题是DEXUSUK
列包含"。"表示缺失值的字符。因此read.csv
将该列解释为字符串,而不是数字。由于您未指定stringsAsFactors = FALSE
,因此字符串将转换为因子。
这个问题有很多解决方案。一种是使用RStudio向导导入数据,该向导可以精确控制如何处理列。使用read.csv
的修复是这样的:
DEXUSUK <- read.csv("C:/Users/Seth Reuter/Google Drive/GSU/Financial Engineering/Final Project/DEXUSUK.csv",
stringsAsFactors = FALSE,
na.strings = ".")