• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Oblicz różnice między komórkami w ramce danych dwóch kolumnowych zwrotów “must be a 1d atomic vector or list”

VPS Starter Arubacloud
0 głosów
79 wizyt
pytanie zadane 28 marca 2019 w Inne języki przez MikeP Początkujący (310 p.)

To jest R.

Chcę obliczyć różnice między komórkami w ramce danych jednej kolumny

    > head(df_benchmark)
            Date .STOXXR
    1 2000-01-03  478.52
    2 2000-01-04  459.53
    3 2000-01-05  448.19
    4 2000-01-06  446.24
    5 2000-01-07  455.80
    6 2000-01-10  462.97

Próbowałem więc:

    df_benchmark <- read.xlsx("Data.xlsx", sheet = "Benchmark", startRow = 2,colNames = TRUE, detectDates = TRUE, skipEmptyRows = FALSE)
    df_benchmark[2] <- data.matrix(df_benchmark[2])
    
    percent_change2 <- function(x)last(x)/first(x) - 1
    monthly_return_benchmark <- df_benchmark %>% 
      group_by(gr = floor_date(Date, unit = "month")) %>%
      summarize_at(vars(-Date, -gr), percent_change2) %>%
      ungroup()
    
    #Generujemy xts, wskazując kolumnę z informacją o czasie
    monthly_return_benchmark <- xts(monthly_return[,-1], order.by=monthly_return$gr)

A jednak mam błąd. Wydaje się, że moja ramka danych z kolumną dat i kolumną wartości musi być 1d wektorem atomowym lub listą. Wydaje się, że przyczyną jest problem zmiennych:

    > library(lubridate)
    > percent_change2 <- function(x)last(x)/first(x) - 1
    > monthly_return_benchmark <- df_benchmark %>% 
    +   group_by(gr = floor_date(Date, unit = "month")) %>%
    +   summarize_at(vars(-Date, -gr), percent_change2) %>%
    +   ungroup() %>%
    +   select(-gr) %>% 
    +   as.matrix()  
    Error: Each variable must be a 1d atomic vector or list.
    Problem variables: '.STOXXR'

Plik danych jest tutaj

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 160 wizyt
0 głosów
1 odpowiedź 157 wizyt
pytanie zadane 5 kwietnia 2019 w Python przez niezalogowany
+1 głos
0 odpowiedzi 212 wizyt

92,838 zapytań

141,780 odpowiedzi

320,843 komentarzy

62,171 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...