作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下形式的数据框:
time1 <- rep(seq(1,3),3)
time2 <- c(rep(1,3),rep(2,3), rep(3,3))
value <- seq(1:9)
foo <- data.frame(time1,time2,value)
time1 time2 value
1 1 1 1
2 1 2 2
3 1 3 3
4 2 1 4
5 2 2 5
6 2 3 6
7 3 1 7
8 3 2 8
9 3 3 9
我想使用 dcast 获取以下形式的数据框:
time2 1 2 3 (values of time1)
3 3 6 9
2 2 5 8
1 1 4 7
我的第一次尝试是:
dcast(foo, time2 ~ time1, value.var = "value")
但数据帧不是时间 2 的降序。所以,我试过了
dcast(foo, reorder(time2, rev(time2) ~ time1, value.var = "value")
但现在列名是错误的。有没有一种有效的方法可以使用 dcast 获取我的输出表单?
最佳答案
您可以使用 factor()
将 time2
转换为有序因子,并使用 levels
参数设置顺序。
library(dplyr)
library(reshape2)
foo %>%
mutate(time2 = factor(time2, levels = rev(unique(time2)))) %>%
dcast(time2 ~ time1, value.var = 'value')
关于R: dcast 降序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49409959/
我是一名优秀的程序员,十分优秀!