#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)