Ошибка в аргументах data.frame () подразумевает различное количество строк: 1, 0 - PullRequest
0 голосов
/ 27 марта 2020

Вот мой код:

library(knitr)
library(ggplot2)
library(tidyverse)
library(readr)
library(dplyr)
library(tidyr)
library(tibble)
library(ggradar)
library(scales)

skater_stats = read.csv("game_skater_stats.csv")
player_info = read.csv("player_info.csv")

q3 <- skater_stats %>%
  left_join(player_info, by = 'player_id') %>%
  group_by(player_id) %>%
  mutate(goals = mean(goals), assists = mean(assists), hits = mean(hits), giveaways = mean(giveaways)) %>%
  filter(lastName == "Backstrom" | lastName == "Crosby" | lastName == "Draisaitl" | lastName == "Kessel" | lastName == "Walkin" | lastName == "McDavid") %>%
  select(lastName, goals, assists, hits, giveaways, player_id) %>%
  distinct() %>%
  as_tibble(rownames = "lastName") %>%
  mutate_at(vars(-lastName), rescale) %>%
  select(c('lastName', 'goals', 'assists', 'hits', 'giveaways'))

ggradar(q3)

Я пытаюсь создать градационный график некоторых данных, но когда я запускаю ggradar, я получаю эту ошибку:

Error in data.frame(group = i, x = pathData[, j] * sin(angles[j - 1]),  : 
  arguments imply differing number of rows: 1, 0

Что меня смущает, потому что обычно эта ошибка появляется только тогда, когда nrows != ncols, верно? Однако мой q3 фрейм данных выглядит так:

lastName   goals      assists     hits     giveaways
Crosby    1.0000000 0.781765830 1.0000000  0.5034172
Backstrom 0.0000000 0.484151271 0.8924173  0.0000000
Kessel    0.6056602 0.000000000 0.0000000  0.5092990
Draisaitl 0.5675551 0.004395736 0.5663225  1.0000000
McDavid   0.9985185 1.000000000 0.3281105  0.4986486

Я просто пытаюсь получить вывод, подобный этому, поэтому строки и столбцы не могут быть одинаковыми: enter image description here

1 Ответ

2 голосов
/ 27 марта 2020

Все,

Многие из вас получали эту ошибку с # 3 / ggradar:

Ошибка в data.frame (group = i, x = pathData [, j] * sin (angles [j-1]),: аргументы подразумевают различное количество строк: 1, 0

Если вы получаете это, скорее всего, потому что ваш фрейм данных неправильно покрывает тиббл.

Чтобы решить эту проблему, попробуйте прочитать в файлах команду read_csv () вместо read.csv

read_csv считывает его как tibble, что предотвращает проблемы с конвертацией позже. Read.csv читает его в в качестве кадра данных.

Следует отметить, что перед использованием read_csv

необходимо вызвать библиотеку (readr).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...