r - 使用 reshape package-part 2 重塑数据库
问题描述
继上一篇文章Reshaping database using reshape package中的交互之后,我创建了这个来询问其他问题。简要地说:我有一个数据库,它包含一些为 Id 列复制的行,我想转置它。下面的例子展示了我的数据库的一个小例子。
test<-data.frame(Id=c(1,1,2,3),
St=c(20,80,80,20),
gap=seq(0.02,0.08,by=0.02),
gip=c(0.23,0.60,0.86,2.09),
gat=c(0.0107,0.989,0.337,0.663))
我想要一个像我附上的这个图的最终数据库:
每个 Id 值都有一行,并附加了不同的列。
你能给我一些建议吗?
解决方案
您可以使用dcast
来自data.table
. 此功能允许传播多个值变量。
library(data.table)
setDT(test) # convert test to a data.table
test1 <- dcast(test, Id ~ rowid(Id),
value.var = c('St', 'gap', 'gip', 'gat'), fill = 0)
test1
# Id St_1 St_2 gap_1 gap_2 gip_1 gip_2 gat_1 gat_2
#1: 1 20 80 0.02 0.04 0.23 0.6 0.0107 0.989
#2: 2 80 0 0.06 0.00 0.86 0.0 0.3370 0.000
#3: 3 20 0 0.08 0.00 2.09 0.0 0.6630 0.000
如果您想在最后继续data.frame
通话setDF(test1)
。
推荐阅读
- azure - Kusto 无法将值投影到用户定义的函数中
- android - 有没有办法通过使用 charAt() 来选择超过 1 个字符
- node.js - 无法运行从 OKta 的 Github 存储库克隆的 OKTA 示例 React-OIDC 应用程序
- liferay - 从 Gogo Shell,获取 com.liferay.portal.kernel 的版本
- mysql - 使用 GROUP BY 的 LEFT JOIN 不返回预期的 LEFT JOIN 结果
- android - 何时调用 FCM onNewToken 并授予网络访问权限?背景和打盹模式应用程序
- wordpress - 如何覆盖主题功能
- mongodb - 如何使用 sql 等组 concat 制作 mongo 过滤数据
- c++ - Clang LLVM 禁用 va_arg 扩展
- c++ - Android Studio 问题中的 Java 错误现已解决