Изменить порядок данных фрейм данных R - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть фрейм данных со следующей структурой:

variable_1<-rep("one",times=8) 
variable_2<-c("one","one","two","two","three","three","four","four")
actual<-c(0,10,0,20,0,30,0,40)
predicted<-c(10,0,20,0,30,0,40,0)

data_1<-data.frame(cbind(variable_1,variable_2,actual,predicted))

Я хотел бы сместить столбцы, чтобы получить фрейм данных со следующей структурой:

variable_1_new<-rep("one",times=4)
variable_2_new<-c("one","two","three","four")
actual_new<-c(10,20,30,40)
predicted_new<-c(10,20,30,40)

data_2<-data.frame(cbind(variable_1_new,variable_2_new,actual_new,predicted_new))

Любая помощьбудет принята с благодарностью.

1 Ответ

0 голосов
/ 27 сентября 2018

Сначала убедитесь, что ваши данные читаются в правильном формате : Строки не имеют значения

Это можно сделать, удалив cbind

data_1<-data.frame(variable_1,variable_2,actual,predicted)

или установив флаг stringsAsFactors в false

data_1<-data.frame(cbind(variable_1,variable_2,actual,predicted),stringsAsFactors = F)

Чтобы иметь возможность рассчитать суммы ваших столбцов, которые являются фактическими и прогнозируемыми, сначала необходимо преобразовать столбцы в числовые значения

data_1$actual <- as.numeric(data_1$actual)
data_1$predicted <- as.numeric(data_1$predicted)

суммы по столбцам рассчитываются с использованием совокупности

sums <- aggregate(data_1[c("actual","predicted")], data_1[c("variable_1","variable_2")], sum)

Наконец, вам нужно изменить порядок

data_2 <- sums[order(sums$actual),]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...