更改数据顺序数据框R

时间:2018-09-27 18:46:07

标签: r dataframe

我有一个具有以下结构的数据框:

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 :(得分:1)

首先,请确保以正确的格式读取数据:字符串不是因数

您可以通过删除绑定

来完成此操作
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),]