r - 复杂的数据重组——从宽到长(多列)
解决方案
这应该可行,尽管可能不是最优雅的:
library(reshape2)
library(tidyr)
library(dplyr)
示例数据(基于屏幕截图):
df <- tibble(id = c(1,2,3),
mathT1 = c(10, 9, 7),
mathT2 = c(11, 6, 8),
write1 = c(2, 3, 1),
write2 = c(3, 5, 1),
ses = c(3, 4, 5))
使用包 reshape2、dplyr 和 tidyr 的代码:
df <- df %>%
rename(math_1 = mathT1, math_2 = mathT2,
write_1 = write1, write_2 = write2, ses_1 = ses) %>%
mutate(ses_2 = ses_1) %>%
melt(id.vars = "id", variable.name = "var", value.name = "value") %>%
separate(var, c("var", "time"), "_", extra = "merge") %>%
spread(var, value)
推荐阅读
- google-cloud-platform - GCP 市场 - 服务提供商订阅权限
- c - 如何将 AddressSanitizer 与动态链接的 Pthreads 库结合使用?
- sql - SQL - 根据 2 个字段查找计数
- javascript - 提交之前是否应该通过 javascript 验证表单?
- mongodb - 在查询特定 ID 时,我在 graphql 中遇到错误
- ios - 在这种情况下,如何解决警告“在此块中强烈捕获'自我'可能会导致保留周期”?
- oracle11g - 第 10 行:错误:ORA-00907 缺少右括号 | 甲骨文 11g
- javascript - 如何遍历 jquery 中的对象数组。?
- javascript - 使用电子显示或读取操作系统或系统中存在的所有文件和文件夹
- android - 颤振运行无法确定任务':app:compileDebugJavaWithJavac'的依赖关系