r - R分布在多个值列中
问题描述
我的数据集看起来像这样 -
dataset = data.frame(Site=c(rep('A',6),rep('B',6)),Date=c(rep(c('2019-05-31','2019-04-30','2019-03-31'),4)),Question=c(rep('Q1',3),rep('Q2',3)),Score=runif(12,0.5,1),Average=runif(12,0.5,1))
我想以spread
这样的方式列,前两列包含Site
andQuestion
其余列具有 Score_Date 和 Average_Date
这是结果表的第一行的示例
Site Question Score_2019.03.31 Score_2019.04.30 Score_2019.05.31 Average_2019.03.31 Average_2019.04.30 Average_2019.05.31
A Q1 0.9117566 0.8661078 0.5624139 0.7246694 0.8870703 0.6401099
我尝试使用unite
& spread
fromtidyr
但与结果相去甚远
任何输入将不胜感激
解决方案
使用 tidyverse 中的 tidyr 和 dplyr,您可以执行以下操作:
library(tidyverse)
dataset %>%
nest(Score, Average, .key = 'value_col') %>%
spread(key = Date, value = value_col) %>%
unnest(`2019-03-31`, `2019-04-30`, `2019-05-31`, .sep = "_")
推荐阅读
- sql - 为什么当我尝试导入数据层应用程序时,即使目标数据库最近已删除,SQL Server 仍会出现登录错误?
- python-3.x - 如何在 locust 中创建和使用自定义命令行参数
- javascript - React 对象中的“_store”属性是什么意思?
- flutter - 使用 Image.file 构造函数创建对象时出错
- python - 复制或移动不适用于子进程命令
- python - python - 将数据数组解码为预定义值
- unity3d - Unity:将 PNG 从相机外部移动到游戏场景(滑入过渡)
- ruby-on-rails - Mongodb + Split 1 集合 + 速度
- python - 如何在 scikit-learn 管道中重用带有 inverse_transform 的 Transformer
- python - Jupyter 给出 LSTM 算法结果,然后给出 Keras.Modules 错误,代码相同