r - R:将列名和值移动到行
问题描述
我有一个df1
这样的数据框:
A B C
d 1 4
d 3 5
e 2 6
e 1 4
我喜欢将列名 +B
和的值移动C
到新列R1
&下的行中R2
:
A R1 R2
d B 1
d C 4
d B 3
d C 5
e B 2
e C 6
e B 1
e C 4
提前致谢
解决方案
使用tidyr::pivot_longer
它可以像这样实现:
d <- read.table(text = "A B C
d 1 4
d 3 5
e 2 6
e 1 4", header = TRUE)
d
#> A B C
#> 1 d 1 4
#> 2 d 3 5
#> 3 e 2 6
#> 4 e 1 4
tidyr::pivot_longer(d, -A, names_to = "R1", values_to = "R2")
#> # A tibble: 8 x 3
#> A R1 R2
#> <chr> <chr> <int>
#> 1 d B 1
#> 2 d C 4
#> 3 d B 3
#> 4 d C 5
#> 5 e B 2
#> 6 e C 6
#> 7 e B 1
#> 8 e C 4
推荐阅读
- javascript - 面对错误:即使在 ReactJS 中使用 .map 函数,对象作为 React 子项也无效
- git - 关于你只能编辑分支头的 Git 问题
- python - 在 python 中保存图像时命名图像
- r - 错误:“tidyverse”的包或命名空间加载失败没有名为“rlang”的包
- javascript - jQuery - 悬停时用文本颜色交换按钮背景颜色
- reactjs - 如何在数字海洋上部署 React 应用程序?
- ios - Objective-c UIImage 到灰度位图转换函数中的内存泄漏
- python - 从 FastAPI 中发布的 Pydantic 模型更新 SQLAlchemy ORM 现有模型?
- python - django.db.utils.OperationalError:无法将主机名“db”转换为地址:名称或服务未知
- .net - 无法加载文件或程序集 Newtonsoft.Json - 旧版应用程序