Удаление значений NA из фрейма данных или объекта временного ряда в R - PullRequest
0 голосов
/ 25 мая 2018

Я читаю некоторые данные через:

it.data <- read.csv("inputData/rstar.data.it.csv", header = T, sep = ","), тогда второй и четвертый столбцы являются инфляцией, соответственно.проценты:

inflation.it <- it.data[2]

и

interest.it <- it.data[4].

Однако проблема возникает, когда я пытаюсь преобразовать данные в объект временного ряда, потому что в столбцах есть начальные и конечные значения NA.Я безуспешно пытался na.omit(), it.data[complete.cases(it.data),], na.contiguous.Что происходит сейчас, так это то, что когда я пытаюсь преобразовать данные в объект TS,

inflation.ts.it <- ts(inflation.it, frequency = 4, interest.start)

я получаю очень странные значения, которые не совпадают с исходными данными.

Спасибо.

PS.Данные (я не все выкладывал, но просто чтобы понять):

     gdp.log       inflation  inflation.expectations     interest
1          .    2.4361259655                       .            .
2          .    2.9997029997                       .            .
3          .    1.5169194865                       .            .
4          .    1.5059368664        2.11467132957868            .
5          .    2.0591647331        2.02043102148892            .
6          .    1.9896193771        1.76791011585382            .
7          .    2.6436781609        2.04959978443843            .
8          .    3.3951497860        2.52190301432020            .
9          .    4.5467462347        3.14379838970698            .
10         .    5.0890585241        3.91865817645959            .
11         .    5.7110862262        4.68551019278066            .
12         .    7.7262693156        5.76829007519398            .
13         .    7.5292198967        6.51390849069030            .
14         .    6.9679849340        6.98364009316870            .
15         .    7.6006355932        7.45602743492283            .
16         .    5.6352459016        6.93327158141434            .
17         .    5.4853387259        6.42230128873304            .
18         .    6.6649899396        6.34655254012084            .
19         .    5.8577405857        5.91082878825926            .
20         .    5.5528612997        5.89023263777669            .
21         .    4.9125329499        5.74703119375926            .
22         .    4.2442820089        5.14185421108985            .

1 Ответ

0 голосов
/ 25 мая 2018

Предполагая, что точки находятся в исходном CSV, вы можете исправить это, указав "." как na.string при чтении.

read.csv(text=
"gdp.log,inflation,inflation.expectations,interest
.,2.4361259655377,.,.
.,2.99970299970301,.,.
.,1.5169194865811,.,.
.,1.50593686649291,2.11467132957868,.
.,2.05916473317866,2.02043102148892,.
.,1.9896193771626,1.76791011585382,.
.,2.64367816091953,2.04959978443843,.",
header=TRUE, na.string=c(".", "NA"))

na.string может быть вектором символьных строк,если для пропущенных значений используются несколько кодов.

...