R-интерпретации многомерных временных рядов в формате csv - PullRequest
0 голосов
/ 04 августа 2020

У меня есть набор данных «aid_given_per_person_2007_us.csv» из https://www.gapminder.org/data/.

Используя следующие команды, я пытаюсь заставить R интерпретировать это как набор данных временного ряда.

AidPerCapita<-read.table("aid_given_per_person_2007_usa.csv", header = TRUE, stringsAsFactors = FALSE)

Когда я запускаю голову (AidPerCapita), я получаю:

страна.1960.1961.1962.1963.1964.1965.1966.1967.1968.1969.1970.1971.1972.1973.1974.1975.1976.1977.1978.1979.1980.1981 .1982.1983.1984.1985.1986.1987.1988.1989.1990.1991.1992.1993.1994.1995.1996.1997.1998.1999.2000.2001.2002.2003.2004.2005.2006.2007 1 Австралия, 51.7,60.1,61.2,75.6,75.3,85.3,89.916,814,104,199,1 , 108,130,83,8,88,3,115,114,107,92,124,109,107,122,119,86,122,102,91,1,96,8,96,7,96,100,105,86,4,87,7,92,6,90,5,95,9,90,3,94,1,93,1,93,4,98,6,119,127

Как я могу заставить R понять, что страна не является одной из переменных и что вместо этого к каждому наблюдению должен быть привязан год, например:

Австралия

  1. Год - Помощь Выдается на человека
  2. 1960-100
  3. 1961 - 109
  4. 1962 - 111
  5. 1963 - 110

Австрия

  1. Год - Помощь На человека
  2. 1960 - 156
  3. 1961 - 179
  4. 1962 - 171
  5. 1963 - 203

et c.

Я пробовал:

AidPerCapita2<-as.xts(AidPerCapita)

Но получаю ошибку

Ошибка в as.POSIXlt.character (x, tz, .. .): символьная строка не в стандартном однозначном формате

1 Ответ

0 голосов
/ 04 августа 2020

Вам нужен «длинный» формат вместо широкого. Вы можете преобразовать таблицу с помощью пакета tidyverse tidyR. Вот пример кода того, что вы можете сделать:

library(readr)
library(tidyr)
library(ggplot2)
library(dplyr)

# You can load the data and convert it to long format
data <- read_csv("aid_given_per_person_2007_us.csv") %>% 
  gather(Year, Aid_Given, -country, convert = T)

# You can filter only countries you want
oceania <- data %>% 
  dplyr::filter(country %in% c("Australia", "New Zealand"))

# You can plot the developement of all countries
ggplot(data, aes(x = Year, y = Aid_Given, color = country)) + 
  geom_line(size = 1, na.rm = T)

# Or of only those you have previously selected
ggplot(oceania, aes(x = Year, y = Aid_Given, color = country)) + 
  geom_line(size = 1, na.rm = T)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...