【发布时间】:2023-03-08 16:02:02
【问题描述】:
我有以下 DF:
df <- structure(list(ID = c("IR-1", "IR-2", "IR-3", "IR-4", "IR-4",
"IR-4", "IR-5", "IR-5", "IR-5", "IR-6", "IR-7", "IR-8", "IR-9",
"IR-10"), Var1 = c("A1", "", "A2", "A1", "A2", "A3", "A1", "A2",
"A3", "", "A2", "", "A2", ""), Var2 = c("X1,X2,X3", "", "X1,X4",
"X1,X2,X3", "X1,X2,X3", "X1,X2,X3", "X1,X3", "X1,X3", "X1,X3",
"", "X1,X2,X3", "X1,X2,X3", "X8", ""), Type = c("New", "Old",
"New", "New", "New", "New", "New", "New", "New", "New", "New",
"New", "New", "Old")), class = "data.frame", row.names = c(NA,
-14L))
> df
ID Var1 Var2 Type
IR-1 A1 X1,X2,X3 New
IR-2 Old
IR-3 A2 X1,X4 New
IR-4 A1 X1,X2,X3 New
IR-4 A3 X1,X2,X3 New
IR-4 A2 X1,X2,X3 New
IR-5 A1 X1,X3 New
IR-5 A2 X1,X3 New
IR-5 A3 X1,X3 New
IR-6 New
IR-7 A2 X1,X2,X3 New
IR-8 X1,X2,X3 New
IR-9 A2 X8 New
IR-10 Old
通过使用df,我想了解Var1 在Var1 和Var2 之间的分布,组合一个独特的ID。
在哪里,
- Total = 唯一计数
ID和变量命中的水平行计数(即 var1 和 var2),包括ID - Excl_count = 如果一个特定的
ID只有一个值作为Var1或Var2的一部分 - Blank_Var1 = 唯一
ID计数,其中Var1为 Null/NA/Blank 或 0 - Blank_Var2 = 唯一
ID计数,其中Var2为 Null/NA/Blank 或 0 - Blank_Both = 唯一
ID的计数,其中Var1和Var2均为 Null/NA/Blank 或 0 - Blank_New = 唯一
ID计数,其中Var1和Var2要么为 Null/NA/Blank,要么为 0,Type= 新 - Blank_Old = 唯一
ID计数,其中Var1和Var2均为 Null/NA/Blank 或 0,Type= Old - Non_Blank = 唯一
ID计数,其中Var1或Var2不是 Null/NA/Blank 或 0 - 剩下的是检查交叉映射。例如,垂直变量(即 A1 到 A3,以及 X1 到 KL)检查其中有多少只命中而没有命中任何其他值。此外,它还会检查
A1与整个变量列表中的哪个其他变量匹配
所需数据
Variables Excl_Count % A1 A2 A3 X1 X2 X3 X4 GT XN XP X8 KP KL
Total 10 100.00% 2 4 2 6 4 5 1 0 0 0 1 0 0
Blank_Var1 4 40.00% 0 0 0 1 1 1 0 0 0 0 0 0 0
Blank_Var2 3 30.00% 0 0 0 0 0 0 0 0 0 0 0 0 0
Blank_Both 3 30.00% 0 0 0 0 0 0 0 0 0 0 0 0 0
Blank_New 1 33.33% 0 0 0 0 0 0 0 0 0 0 0 0 0
Blank_Old 2 66.66% 0 0 0 0 0 0 0 0 0 0 0 0 0
Non_Blank 7 70.00% 3 5 2 6 4 5 1 0 0 0 1 0 0
A1 1 16.67% 0 2 2 3 2 3 0 0 0 0 0 0 0
A2 3 50.00% 2 0 2 4 2 3 1 0 0 0 1 0 0
A3 0 0.00% 2 2 0 2 1 2 0 0 0 0 0 0 0
X1 0 0.00% 3 5 2 0 4 5 1 0 0 0 0 0 0
X2 0 0.00% 2 2 2 5 0 4 0 0 0 0 0 0 0
X3 0 0.00% 3 3 2 5 4 0 0 0 0 0 0 0 0
X4 0 0.00% 0 1 0 1 0 0 0 0 0 0 0 0 0
GT 0 0.00% 0 0 0 0 0 0 0 0 0 0 0 0 0
XN 0 0.00% 0 0 0 0 0 0 0 0 0 0 0 0 0
XP 0 0.00% 0 0 0 0 0 0 0 0 0 0 0 0 0
X8 1 16.67% 0 1 0 0 0 0 0 0 0 0 0 0 0
KP 0 0.00% 0 0 0 0 0 0 0 0 0 0 0 0 0
KL 0 0.00% 0 0 0 0 0 0 0 0 0 0 0 0 0
【问题讨论】:
-
这是9个问题,请一次问一个问题。另外,请以
dput格式发布数据,使用dput(DF)的输出编辑问题。 -
很多时候,你在这样的问题中面临的困难(实际上是一个集合多个问题)是你的数据集不是tidy。显然,您的数据集在这里并不整洁。一旦你整理好数据,我怀疑得出你想要的统计数据将是微不足道的。
-
@RuiBarradas- 抱歉,我会将问题分成不同的部分。我尝试了但无法达到所需的输出。
-
这里有类似的问题!
non_blank值大于Total? -
excl_countforX1是什么意思是0?同样,%is.t 加起来是 100
标签: r dataframe dplyr tidyverse tidyr