r - R从数据框列创建数据框的方法
问题描述
在 R 中寻找一种从另一个数据帧创建数据帧的方法,其中 Col A 的值充当索引,并且 Col B 中的每个唯一值成为新数据帧中的新列,其中 Col C 的值是值在新列中。
数据框1:
可乐 | B栏 | 科尔C |
---|---|---|
一个 | 2011 | 1 |
乙 | 2012 | 2 |
C | 2013 | 3 |
D | 2011 | 4 |
乙 | 2012 | 5 |
D | 2013 | 6 |
一个 | 2013 | 7 |
结果:
可乐 | 2011 | 2012 | 2013 |
---|---|---|---|
一个 | 1 | 0 | 7 |
乙 | 0 | 2 | 0 |
C | 0 | 0 | 3 |
D | 4 | 0 | 6 |
乙 | 0 | 0 | 5 |
解决方案
这是使用的基本 R 选项reshape
reshape(
df,
direction = "wide",
idvar = "ColA",
timevar = "ColB"
)
这使
ColA ColC.2011 ColC.2012 ColC.2013
1 A 1 NA 7
2 B NA 2 NA
3 C NA NA 3
4 D 4 NA 6
5 E NA 5 NA
一个data.table
选项dcast
> dcast(setDT(df),ColA~ColB, value.var = "ColC")
ColA 2011 2012 2013
1: A 1 NA 7
2: B NA 2 NA
3: C NA NA 3
4: D 4 NA 6
5: E NA 5 NA
数据
> dput(df)
structure(list(ColA = c("A", "B", "C", "D", "E", "D", "A"), ColB = c(2011L,
2012L, 2013L, 2011L, 2012L, 2013L, 2013L), ColC = 1:7), class = "data.frame", row.names = c(NA,
-7L))
推荐阅读
- javascript - Chrome 中的 Acrobat Javascript:如何触发 HTTP 请求?
- java - 如何解决没有可用的“com.example.test.repository.ConfigRepository”类型的合格bean:预计至少有1个符合自动装配条件的bean
- javascript - 如何正确迭代日期数组并将值分配给另一个数组?
- python - 当我在我的 linux 终端中输入废话时,我得到了错误
- c# - System.Data.Entity.Core.EntityCommandExecutionException 和内部异常 SqlException:无效的列名“xxxx”
- python - 如何在有限状态机中定义动态并行条目 - python django
- julia - 如何从 julia 数据框创建字典?
- c# - Winforms 中的 Context.SaveChanges
- javascript - 如何通过 css 覆盖以前用 javascript 应用的样式
- apache-flink - 在纱线集群和分离模式下使用时,我的主要方法在哪里运行