r - 计算数据框相似行
问题描述
我是 R 新手。我有一个数据框(New1)包含 400 行和 5 列。这是一个例子:
A B C D E
0 0 0 0 0
0 0 0 0 1
0 0 0 0 2
0 0 0 1 0
0 0 0 1 1
0 0 0 1 2
0 0 0 2 0
0 0 0 2 1
我想添加一个发生相同事件数量的新列。例如此表中 (A=0, B=0, C=0, D=0, E=0) 的事件数为 0。则事件数 (A=0, B=0, C=0, D =0, E=1) 在此表 1. 中,依此类推。
这在R中可行吗?
解决方案
#sample Mat
Mat <-structure(c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L,
1L, 2L, 2L, 0L, 1L, 2L, 0L, 1L, 2L, 0L, 1L), .Dim = c(8L, 5L), .Dimnames = list(
NULL, NULL))
library(dplyr, warn.conflicts = F)
Mat
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0 0 0 0 0
#> [2,] 0 0 0 0 1
#> [3,] 0 0 0 0 2
#> [4,] 0 0 0 1 0
#> [5,] 0 0 0 1 1
#> [6,] 0 0 0 1 2
#> [7,] 0 0 0 2 0
#> [8,] 0 0 0 2 1
Mat %>% as.data.frame() %>% setNames(LETTERS[1:ncol(.)]) %>%
mutate(total = rowSums(cur_data()))
#> A B C D E total
#> 1 0 0 0 0 0 0
#> 2 0 0 0 0 1 1
#> 3 0 0 0 0 2 2
#> 4 0 0 0 1 0 1
#> 5 0 0 0 1 1 2
#> 6 0 0 0 1 2 3
#> 7 0 0 0 2 0 2
#> 8 0 0 0 2 1 3
根据评论中的要求,保存 csv 使用 write.csv
Mat %>% as.data.frame() %>% setNames(LETTERS[1:ncol(.)]) %>%
mutate(total = rowSums(cur_data())) %>%
write.csv('path\\filename.csv')
推荐阅读
- mysql - 如何通过产品 ID 获取不同的状态计数
- c - 如何计算比赛?
- django - django 自定义保存方法以更改默认数据库
- angular - 路由器历史中的 Ionic 4/Angular 循环
- python - 如何在 gRPC 客户端-服务器框架上强制进行多处理以进行网络爬取?
- algorithm - DBSCAN/OPTICS 算法中是否包含半径 epsilon?
- ruby-on-rails-4 - Rails 服务器在 GCP VM 实例上运行,但无法在浏览器上访问 rails 应用程序
- python-3.x - Selenium-Webdriver 允许在一个窗口中打开多个选项卡,但在加载配置文件时不允许?
- node.js - nodejs自动维护winston日志
- windows - 我想用 Vagrant 在 OSX 上运行一个基本的 Windows 来宾,但我不断收到身份验证失败