r - 计算 R studio 中每个观察值的常见事件数和分类变量中的值
问题描述
我的DataFrame由两列组成,第一列是id
第二列Value.1
。我想创建一个有 4 列的表:
id
- 每个
id
在表中出现 的次数 - 哪个值(在值 1 中)出现的次数最多
id
- 多少次。
输出应该是一个包含上述四个部分的表格。
我的输入:
数据。
Value.1 id
a 235
a 235
b 256
b 258
c 235
c 222
c 258
a 256
c 258
解决方案
以下代码完成了问题的要求。
- 按组获取计数 (
times
)id
和Value.1
- 分组依据
id
,最终分组标准 - 获取最大计数
- 创建一个全部
Value.1
等于最大值的字符串times
- 总和
times
这是作为管道实现的。
library(dplyr)
df1 %>%
count(id, Value.1, name = "times") %>%
group_by(id) %>%
summarise(Times.of.Common.value.1 = max(times),
Common.value.1 = paste(Value.1[times == Times.of.Common.value.1], collapse = ","),
times = sum(times))
## A tibble: 4 x 4
# id Times.of.Common.value.1 Common.value.1 times
# <int> <int> <chr> <int>
#1 222 1 c 1
#2 235 2 a 3
#3 256 1 a,b 2
#4 258 2 c 3
编辑。
在此处遵循 OP 的评论是count
.
df1 %>%
count(id, Value.1, name = "times")
## A tibble: 7 x 3
# id Value.1 times
# <int> <fct> <int>
#1 222 c 1
#2 235 a 2
#3 235 c 1
#4 256 a 1
#5 256 b 1
#6 258 b 1
#7 258 c 2
数据。
df1 <- read.table(text = "
Value.1 id
a 235
a 235
b 256
b 258
c 235
c 222
c 258
a 256
c 258
", header = TRUE)
推荐阅读
- linux - sed 对 tail -f 和 tail 的工作方式不同?
- c++ - 用于构建 DLL 的 C++ 源文件:从文件中读取文本并将其替换为另一个文件
- dataweave - Mule ESB:如何将二进制形式的有效负载转换为 mule 4、dw 2.0 中的数组
- android - 显示从 MYSQL 到 TextView Android Studio 的最新传感器数据
- swift - AudioKit MIDIListener 强制我覆盖它的协议
- java - 554 交易失败错误:此帐户的发送已暂停
- php - 如何在 TYPO3 中使用 type=inline 创建重复字段?
- android - 如何修复我的调试器在 Android Studio 中连接后立即停止我的应用程序?
- python - 我应该如何从 WSL2 在 Windows 10 中打开远程摄像头?
- python - python apscheduler 不是由 cron 每 1 分钟执行一次