ОШИБКА ПРИВЕДЕНИЯ В R Ошибка в `[.data.frame` (data, , variables, drop = FALSE): выбраны неопределенные столбцы

#r #casting

#r #Кастинг

Вопрос:

Я получаю эту ошибку в R при приведении данных с использованием пакета «Reshape»:

 "Error in `[.data.frame`(data, , variables, drop = FALSE) : 
  undefined columns selected"
  

Данные о качестве воды выглядят следующим образом:

    year turbid.ave.mo month2
16 2002     926.66667   JUNE
23 2002     493.66667   JULY
29 2002     107.10000    AUG
37 2002     295.80000   SEPT
46 2002     528.28000    OCT
53 2002     266.20000    NOV
56 2002      73.80000    DEC
1  2003     115.00000    JAN
  

Я хочу выполнить приведение так, чтобы месяц был заголовком столбца (одна строка в год с ЯНВАРЯ по декабрь в качестве заголовков столбцов.

Код, который я пробовал:

 casted = cast(Waterquality [ ,c(1:3)], year   turbid.ave.mo ~ month2, mean, fill =0, value = "turbid.ave.mo")
  

Ошибка: ошибка в [.data.frame (данные, переменные, удаление = FALSE) :
выбраны неопределенные столбцы

Кто-нибудь скажет мне, что я делаю не так? Заранее спасибо!!

Комментарии:

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

2. cast не является функцией R. Рассмотрите возможность предоставления достаточной информации в вашем вопросе, чтобы другие могли запускать ваш код.

3. спасибо, у меня тоже была эта проблема. кажется, неправильно объяснено на r-statistics.com/tag/transpose ?

Ответ №1:

Не включайте значение в формулу:

 cast(Waterquality [ ,c(1:3)], year ~ month2, mean, fill =0, value = "turbid.ave.mo")

  year   AUG  DEC JAN     JULY     JUNE   NOV    OCT  SEPT
1 2002 107.1 73.8   0 493.6667 926.6667 266.2 528.28 295.8
2 2003   0.0  0.0 115   0.0000   0.0000   0.0   0.00   0.0
  

Ответ №2:

Вот гораздо более чистое tidyr решение:

 library(tidyr)

spread(Waterquality, month2, turbid.ave.mo, fill = 0)
# year        Apr      Aug       Feb        Jan         Jul      Jun        Mar       May
# 1 2002 -0.2798722 0.000000 -0.901421 -0.9576323 -0.07627388 0.652116 -0.3758433 0.9795479
# 2 2003  0.0000000 1.047832  0.000000  0.0000000  0.00000000 0.000000  0.0000000 0.0000000
  

Ответ №3:

Возникла та же проблема. Изначально данные были такими: (Идентификатор, значение, переменная) Просто изменил порядок на (идентификатор, переменная, значение).

     cast (tmp, id ~ delivery_month)