r - 将重复值粘贴在一起的新列添加到数据框
问题描述
我df
看起来像这样:
ID Country
55 Poland
55 Romania
55 France
98 Spain
98 Portugal
98 UK
65 Germany
67 Luxembourg
84 Greece
22 Estonia
22 Lithuania
其中一些ID
重复,因为它们属于同一组。我想要做的是将paste
所有Country
相同的东西放在一起ID
,得到这样的输出。
到目前为止,我尝试过,
ifelse(df[duplicated(df$ID) | duplicated(df$ID, fromLast = TRUE),], paste('Countries', df$Country), NA)
但这并没有检索到预期的输出。
解决方案
使用data.table
library(data.table)
setDT(df)[, New_Name := c(paste0(Country, collapse = " + ")[1L], rep(NA, .N -1)), by = ID]
#df
#ID Country New_Name
#1: 55 Poland Poland + Romania + France
#2: 55 Romania <NA>
#3: 55 France <NA>
#4: 98 Spain Spain + Portugal + UK
#5: 98 Portugal <NA>
#6: 98 UK <NA>
#7: 65 Germany Germany
#8: 67 Luxembourg Luxembourg
#9: 84 Greece Greece
#10: 22 Estonia Estonia + Lithuania
#11: 22 Lithuania <NA>
推荐阅读
- ubuntu - 让 x11vnc 在 Ubuntu 16.04 服务器中自动启动,而无需有人首先物理登录服务器
- java - System.getenv() 在 Eclipse (Mac) 上找不到环境变量
- excel - 使用 Excel VBA 时 Outlook 电子邮件性能变慢
- android - NFC 设备所有者配置和 Knox
- kubernetes - 使用具有多个端口和协议的相同 Istio Gateway
- c++ - WinAPI 无法创建按钮
- ios - 如何检测是否从设备设置了 HealthKit 数据?
- tcpdf - 具有单个字体文件时,TCPDF 忽略 $pdf->ImageSVG() 中的内联字体粗细和字体样式
- node.js - 如何将我的工作 curl 命令映射到 grpc-web 调用
- windows - 如何在 Windows 10 中找到 Windows 10 的 pin 哈希?