2017-02-03 10 views
0

私は廃止した財務データを変換しようとしており、大きな頭痛になっています!私はas.numeric(as.character())のようなものを試してみましたが、うまくいきません。本当に私を捨てるのは、それが文字の場合、Close >= 20を使ってフィルタリングする方法です。そして私はそれをプロットすることができますが、数学的操作はしません!これがデータフレーム内にあるという人工物であるかどうかは不明です。どんな助けもありがとう。データフレームの文字列をRの数値列に変換

# Links to oil futures prices and downloads them 

library(dplyr) 

oilurl <- "http://quotes.ino.com/exchanges/contracts.html?r=NYMEX_CL" 

download.file(oilurl, destfile = ".../Strip/OilStrip.html") 

oilhtml <- read_html("..../Strip/OilStrip.html") 

# Puts the Oil data into a df 

wti_df <- as.data.frame(read_html("..../Strip/OilStrip.html") %>% html_table(fill = TRUE)) 

colnames(wti_df) <- c("A","Date","C","D","E","Close","G","H","I") 

# Cleans up the data into just Dates and Close price, removes any less than $20 

wti_df <- select(wti_df,Date,Close) 

wti_df <- slice(wti_df, 3:1023) 

wti_df <- filter(wti_df,Close >= 20) 

#turn "Close" into numeric 

transform(wti_df, Close = as.numeric) 

私は、カラムを数値にするためにすべてを試みましたが、これは私が得る最も近いものです。ここで要約

> summary(wti_df$Close) 
     Length Class Mode 
[1,] 1  -none- numeric 
[2,] 1  -none- numeric 

があるしかし、私は

> plot(wti_df$Close) 
Error in xy.coords(x, y, xlabel, ylabel, log) : 
    'x' is a list, but does not have components 'x' and 'y' 

> 5.0 + wti_df$Close 
Error in 5 + wti_df$Close : non-numeric argument to binary operator 
+3

「 'x」はリストはかなり役に立つエラーメッセージのように見えます。 – nrussell

+0

ビンゴ!文字を数値に解析するためにreadrを使用することができました。wti_df $ Close < - parse_number(wti_df $ Close) –

答えて

1

「トランスフォーム」......試してみて、列を閉じたり、データをプロットするために番号を追加するような何かをするとき、それは、複数の与えたときにいくつかの問題を持っていますあなたのコラムに "as.character"と "as.numeric"を最初に適用するかどうかを尋ねるなどの簡単な方法を試してみてください。もし変換があなたの問題であるかどうか、あるいは何か他のことがあなたのデータで起きているかどうかを調べてみてください。

wti_df$Close <- as.numeric(as.character(wti_df$Close)) 
関連する問題