【发布时间】:2022-12-18 15:32:57
【问题描述】:
我正在使用一个循环来获取和检查一系列文件的统计信息。对于每个文件,我(1)检查它对每个状态有多少观察,(2)检查它总共有多少个 ID 以及它有多少个唯一 ID; (3) 检查它总共有多少个 id,以及它有多少个特定状态的唯一 id。
我目前只是在循环中打印出答案,但我想将它输出到两个表中:第一个是每个状态的观察计数,第二个是特定状态的 id 和 id 的计数.这个虚拟数据创建了我正在做的事情的(非常粗略的)近似值:
library(tidyverse)
library(dplyr)
library(purrr)
for(x in 1:100){
print(x)
df <- data.frame(
state = sample(c(0:72), 1000, replace = TRUE),
id = sample(c(100:999), 1000, replace = TRUE)
)
#table
print(table(df$state))
#full counts
print(length(df$id))
print(length(unique(df$id)))
#specific counts
print(length(df$id[df$state == 72]))
print(length(unique(df$id[df$state == 72])))
}
我在数据框/表中想要的输出基本上是:
1:1:100 中 x 的每个状态的计数;是这样的:
x state01 state02 state03
1 1 43 772 455
2 2 509 759 619
3 3 269 930 313
4 4 702 983 120
5 5 455 68 735
6 6 708 12 812
7 7 221 334 25
8 8 746 155 134
9 9 150 831 468
10 10 415 867 261
2. id 的唯一 id 的计数,以及 1:100 中 x 的特定状态的 id 和唯一 id 的计数。或者,像这样:
x id uid id72 uid72
1 1 1000 395 423 150
2 2 1000 352 541 100
3 3 1000 86 180 32
4 4 1000 202 718 105
5 5 1000 839 135 135
6 6 1000 79 897 30
7 7 1000 437 91 91
8 8 1000 387 287 101
9 9 1000 102 225 85
10 10 1000 310 998 103
【问题讨论】:
标签: r