2017-04-26 71 views
0

我正在運行我能想象的最簡單的代碼。我所做的只是要求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。我從聯邦儲備經濟數據庫下載了它。

+1

您得到一個值。它是1.4451。剩下的部分是提醒你'ExchangeRates'是一個不是數字的因素。文件中可能有某些內容不是數字。 – G5W

+1

而且有些東西可能與R認爲是其中一個關卡的孤立'.'有關。 – joran

回答

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 = ".")