首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改数据顺序数据帧R

更改数据顺序数据帧R
EN

Stack Overflow用户
提问于 2018-09-28 02:46:07
回答 1查看 52关注 0票数 -1

我有一个结构如下的数据帧:

代码语言:javascript
复制
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))

我想对列进行移位,以获得具有以下结构的数据帧:

代码语言:javascript
复制
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))

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-09-28 03:33:41

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

您可以通过删除cbind来执行此操作

代码语言:javascript
复制
data_1<-data.frame(variable_1,variable_2,actual,predicted)

或者通过将标志stringsAsFactors设置为false

代码语言:javascript
复制
data_1<-data.frame(cbind(variable_1,variable_2,actual,predicted),stringsAsFactors = F)

为了能够计算actual和predicted列的总和,您必须首先将列转换为

代码语言:javascript
复制
data_1$actual <- as.numeric(data_1$actual)
data_1$predicted <- as.numeric(data_1$predicted)

列总和是使用aggregate计算的

代码语言:javascript
复制
sums <- aggregate(data_1[c("actual","predicted")], data_1[c("variable_1","variable_2")], sum)

最后,您需要更改顺序

代码语言:javascript
复制
data_2 <- sums[order(sums$actual),]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52543332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档