r - R:按名称向我的数据框添加一个新列
问题描述
我有一个具有不同组名(Real.Madrid、Chelsea、Manchester...)的数据集(Y)和每个组的不同值:
Real.Madrid Chelsea Manchester
420 446 339
PSG Barcelona Ajax
106 191 394
这个数据集的类型是下一个:
num [1:6(1d)] 420 446 339 106 192 ...
- attr(*, "dimnames")=List of 1
..$ : chr [1:6] "Real.Madrid" "Chelsea" "Manchester" "PSG" ...
我还有一个数据框(df1):
X Team
1 2 Real.Madrid
2 3 Real Madrid
3 5 Ajax
4 2 Barcelona
5 1 Manchester
6 3 PSG
7 6 Chelsea
我的目标是将第一个数据集附加到数据框中,并匹配团队名称,添加一个包含第一个数据集数值的新列:
X Team Y
1 2 Real.Madrid 420
2 3 Real Madrid 420
3 5 Ajax 394
4 2 Barcelona 191
5 1 Manchester 339
6 3 PSG 106
7 6 Chelsea 446
我如何合并这些值,将团队名称与“团队”列匹配?
解决方案
我想你可以利用命名向量Y
,例如,
df <- within(
df,
Y <- Y[Team]
)
这样
X Team Y
1 2 Real.Madrid 420
2 3 Real.Madrid 420
3 5 Ajax 394
4 2 Barcelona 191
5 1 Manchester 339
6 3 PSG 106
7 6 Chelsea 446
数据
> dput(df)
structure(list(X = c(2L, 3L, 5L, 2L, 1L, 3L, 6L), Team = c("Real.Madrid",
"Real.Madrid", "Ajax", "Barcelona", "Manchester", "PSG", "Chelsea"
)), class = "data.frame", row.names = c("1", "2", "3", "4", "5",
"6", "7"))
> dput(Y)
c(Real.Madrid = 420, Chelsea = 446, Manchester = 339, PSG = 106,
Barcelona = 191, Ajax = 394)
推荐阅读
- clojure - “ISA”是怎样的?基于多方法而不是 instanceof 的语法糖?
- python - 我自己的 FastRCNN 实现在平衡数据上表现不佳
- electron - 我用电子创建了一个应用程序,但是当我在 win 7 32 位中运行它时,会显示一个空白选项卡
- regex - 从字符串中解析数字,没有空格将字母与数字分隔
- qooxdoo - 如何将较旧的主题贡献迁移到 Qooxdoo 6.0?
- docker - 本地 Gitlab cicd 使用 linux 运行程序失败“致命:无法访问...无法解析主机:...”
- javascript - 谷歌地图的新位置如何以 React 为中心?
- javascript - 谷歌应用脚本获取多个索引位置
- python - 如何解决python(Xampp)的内部服务器错误500
- amazon-web-services - 我如何配置 AWS EC2 apache 服务器