r - 修改DataFrame,删除double Data with for each,R
问题描述
我即将修改数据框,因为它包含双值
Data Frame:
Id Name Account
1 X 1
1 Y 2
1 Z 3
2 J 1
2 T 4
3 O 2
因此,当有多行相同时,Id
我只想保留最后一行。所需的输出将是
Id Name Account
1 Z 3
2 T 4
3 O 2
这是我当前的代码:
for (i in 1:(nrow(mylist)-1)) {
if(mylist$Id[c(i)] == mylist$Id[c(i+1)]){
mylist <- mylist[-c(i), ]
}
}
我在删除一行时遇到问题,因为所有其他行的索引都较低,并且系统在下一步中跳过了行。
解决方案
您可以使用包轻松完成此操作dplyr
:
library(dplyr)
mylist %>%
group_by(Id) %>%
slice(n()) %>%
ungroup()
首先你 group_byId
列。之后,您只选择每个组的最后一个条目 ( slice(n())
)。
推荐阅读
- tsql - 从报告中排除日期
- processing - P5.js 没有加载声音
- prometheus-alertmanager - 如何在指标数据(prometheus)中添加我自己的键值对?
- awk - 如何使用 bash/awk 将每个文件的日期显示为每行的第一个元素?
- electron - 当我重新编译本机模块时,localStorage 是否会重置?
- java - 有没有办法从 Kafka 主题中获取最后一条消息?
- ios - 使用未调用的 Apple ASAuthorizationControllerDelegate 方法登录
- c# - Xamarin Forms - 跟踪用户从我的应用程序共享的链接
- php - 将 HTML 输出转换为 BLOB 图像
- python-2.7 - 如何将 os.system() 调用更改为 subprocess.call() 以获取以下代码