r - 将多列堆叠成R中具有单个值的单列
问题描述
ID Time U1 U2 U3 U4
1 20 1 0 0 0
2 20 0 1 0 0
3 20 0 0 1 0
4 20 0 0 0 1
我需要保持这样:
ID Time U
1 20 U1
2 20 U2
3 20 U3
4 20 U4
我试过:
X_D <- as.data.frame(X)
X_new <- stack(X_D, select = -c(ID, Time))
解决方案
尝试
library(dplyr)
df <- data.frame(ID = 1:4, Time = 20, U1 = c(1,0,0,0), U2 = c(0,1,0,0), U3 = c(0,0,1,0), U4 = c(0,0,0,1))
df %>% pivot_longer(cols = 3:6, names_to = "U") %>%
filter(value == 1) %>%
select(-value)
推荐阅读
- node.js - 如何使用 AWS 签名 4 -> API Gateway -> Lambda 进行授权
- javascript - Tone.js PitchShift“金属”失真问题
- java - 如何等待 API 的响应将数据动态加载到 Android 中的回收器视图中
- sql - 尝试了以下查询,但得到错误为 ORA-00904: "RTE_LOC"."RCRD_STTS_VAL": invalid identifier
- python - Django 中的总计\小计
- c++ - 未定义的参考 // C++ // 头文件中的类
- c++ - 写入文件时加快 MPI
- python - 我的反转树功能有什么问题?
- javascript - 如何在悬停工作时暂停自动收报机
- django-rest-framework - 字段名称“get_thumbnail”对于模型“产品”无效