r - 如何重新排列数据框?
问题描述
我有一个如下所示的数据框(所有元素数字):
var1 var2 var3
1 1 10
1 3 30
1 2 20
2 6 30
2 4 20
2 2 10
我想以这种方式重新排列(var1 应该是不重复的行名,而 var2 应该是第一行):
1 2 3 4 6
1 10 20 30 NA NA
2 NA 10 NA 20 30
请注意,第 5 列被跳过,因为 var2 没有 '5' 值。我很难选择一种方法来处理这个问题。
你推荐我哪个 R 函数/包?使用 Linux 命令更容易获得它吗?
解决方案
您可以dcast
从reshape2
包中使用-
> reshape2::dcast(dt,var1~var2, value.var = "var3")
var1 1 2 3 4 6
1 1 10 20 30 NA NA
2 2 NA 10 NA 20 30
注意- 如果您的数据很大,请dcast.data.table
从data.table
包中使用。
> data.table::setDT(dt)
> dcast.data.table(dt,var1~var2,value.var = "var3")
var1 1 2 3 4 6
1: 1 10 20 30 NA NA
2: 2 NA 10 NA 20 30
推荐阅读
- reactjs - 如何使用 typescript 在 Nextjs 的 getServerSideProps 中输入类型?
- asp.net-core - 无效的对象名称 AspNetRoles .NET Core 5
- mongodb - 连接一个 mongo atlas 连接来播放框架应用程序
- colors - 如何在 css 中排名第一?
- json - glitch.com 监视文件无法正常工作
- javascript - 我怎样才能拥有一个包含许多 LI 元素和一个按钮的 UL 列表?
- php - 将 html 按钮连接到 php 代码以执行某些操作
- sql - SQL 修剪前面的零
- aws-lambda - 如何保护 AWS Lambda 函数的源代码
- flutter - 是否可以在应用程序运行时获得 Flutter SDK 版本?