- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有大型分类数据集,想快速生成倒数表来比较类别之间的共同元素的比例。
输入示例:
df <- structure(list(YEAR = structure(c(5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
1L), .Label = c("2013", "2014", "2015", "2016", "2017"), class = "factor"),
Entry_Number_F = c(3170L, 3182L, 3169L, 3178L, 3180L, 3181L,
3097L, 3168L, 3164L, 3179L, 3171L, 3169L, 3170L, 3178L, 3097L,
3177L, 3168L, 3164L, 3179L, 3097L, 3164L, 3168L, 3169L, 3170L,
3171L, 3172L, 3173L, 3174L, 3175L, 3176L, 3097L, 3164L, 3168L,
3169L, 3170L, 3097L, 3156L, 3168L, 3169L, 3170L)), .Names = c("YEAR",
"Entry_Number_F"), row.names = c(181L, 182L, 183L, 184L, 186L,
196L, 199L, 202L, 204L, 768L, 3213L, 3948L, 3950L, 3954L, 3957L,
3958L, 3963L, 3964L, 3969L, 7836L, 7837L, 7838L, 7839L, 7840L,
7841L, 7842L, 7843L, 7844L, 7845L, 7846L, 10785L, 10786L, 10787L,
10788L, 10789L, 13679L, 13680L, 13681L, 13682L, 13683L), class = "data.frame")
期望的输出:
structure(list(X2017 = c(1, 0.6666667, 0.4888889, 0.4888889,
0.4888889), X2016 = c(0.7317073, 1, 0.6585366, 0.6341463, 0.6097561
), X2015 = c(0.44, 0.54, 1, 0.68, 0.58), X2014 = c(0.468, 0.553,
0.723, 1, 0.702), X2013 = c(0.423, 0.481, 0.557, 0.6346, 1)), .Names = c("X2017",
"X2016", "X2015", "X2014", "X2013"), class = "data.frame", row.names = c(2017L,
2016L, 2015L, 2014L, 2013L))
我可以用一种笨拙的方式得到我想要的答案,如下:
unique(df$YEAR)
这些年的子集。
Year1 <- "2017"
Year2 <- "2016"
Year3 <- "2015"
Year4 <- "2014"
Year5 <- "2013"
对每一年进行子集化。
df.2017 <- droplevels(subset(df, YEAR=="2017"))
df.2016 <- droplevels(subset(df, YEAR=="2016"))
df.2015 <- droplevels(subset(df, YEAR=="2015"))
df.2014 <- droplevels(subset(df, YEAR=="2014"))
df.2013 <- droplevels(subset(df, YEAR=="2013"))
找出年份之间常见条目的比例。
length(Reduce(intersect,
list(df.2017$Entry_Number_F,
df.2017$Entry_Number_F
)))/length(unique(df.2017$Entry_Number_F))
length(Reduce(intersect,
list(df.2017$Entry_Number_F,
df.2016$Entry_Number_F
)))/length(unique(df.2017$Entry_Number_F))
length(Reduce(intersect,
list(df.2017$Entry_Number_F,
df.2015$Entry_Number_F
)))/length(unique(df.2017$Entry_Number_F))
length(Reduce(intersect,
list(df.2017$Entry_Number_F,
df.2015$Entry_Number_F
)))/length(unique(df.2017$Entry_Number_F))
length(Reduce(intersect,
list(df.2017$Entry_Number_F,
df.2014$Entry_Number_F
)))/length(unique(df.2017$Entry_Number_F))
length(Reduce(intersect,
list(df.2017$Entry_Number_F,
df.2013$Entry_Number_F
)))/length(unique(df.2017$Entry_Number_F))
这显然不理想。我已经尝试了一些东西,例如下面的代码,以及类似于此处链接 example 的东西,但它并没有通过简单的步骤就给我倒数表。
x <- df %>% group_by(YEAR) %>% mutate(count = n_distinct(Entry_Number_F))
x <- aggregate(Entry_Number_F ~ YEAR, Data.input, function(x) unique(x))
任何人都可以提出一种直接的方法吗?
非常感谢!
编辑:
感谢您的快速反馈。不幸的是,我不认为以下建议都返回正确答案。这可能是因为我的问题不够清楚和/或我的示例不够充分。
此数据集与我的实际数据更具可比性,尽管为清楚起见我删除了一些列。
df2 <- structure(list(YEAR = structure(c(5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L), .Label = c("2013", "2014", "2015", "2016",
"2017"), class = "factor"), Entry_Number_F = c(3170L, 3182L,
3169L, 3178L, 3169L, 3180L, 3180L, 3170L, 3182L, 3178L, 3170L,
3180L, 3178L, 3169L, 3182L, 3181L, 3181L, 3181L, 3097L, 3097L,
3097L, 3168L, 3168L, 3164L, 3168L, 3164L, 3164L, 3097L, 3164L,
3168L, 3169L, 3170L, 3178L, 3180L, 3181L, 3182L, 3180L, 3182L,
3180L, 3182L, 3169L, 3178L, 3170L, 3182L, 3169L, 3097L, 3178L,
3170L, 3181L, 3169L, 3170L, 3178L, 3181L, 3180L, 3181L, 3168L,
3164L, 3097L, 3097L, 3164L, 3168L, 3168L, 3164L, 3097L, 3164L,
3168L, 3169L, 3170L, 3178L, 3180L, 3181L, 3182L, 3182L, 3182L,
3178L, 3168L, 3170L, 3170L, 3178L, 3169L, 3181L, 3169L, 3097L,
3168L, 3182L, 3164L, 3097L, 3178L, 3169L, 3181L, 3180L, 3164L,
3181L, 3164L, 3097L, 3168L, 3180L, 3170L, 3180L, 3097L, 3164L,
3168L, 3169L, 3170L, 3178L, 3180L, 3181L, 3182L, 3170L, 3181L,
3182L, 3169L, 3180L, 3169L, 3169L, 3182L, 3170L, 3180L, 3182L,
3180L, 3170L, 3168L, 3181L, 3178L, 3097L, 3178L, 3168L, 3178L,
3164L, 3097L, 3097L, 3181L, 3164L, 3168L, 3164L, 3097L, 3164L,
3168L, 3169L, 3170L, 3178L, 3180L, 3181L, 3182L, 3170L, 3170L,
3169L, 3169L, 3164L, 3178L, 3178L, 3170L, 3097L, 3168L, 3177L,
3097L, 3178L, 3164L, 3168L, 3097L, 3164L, 3168L, 3169L, 3177L,
3179L, 3177L, 3179L, 3179L, 3097L, 3164L, 3168L, 3169L, 3170L,
3177L, 3178L, 3179L, 3169L, 3169L, 3178L, 3178L, 3170L, 3170L,
3170L, 3170L, 3178L, 3177L, 3169L, 3168L, 3168L, 3178L, 3097L,
3168L, 3177L, 3177L, 3164L, 3097L, 3097L, 3164L, 3177L, 3097L,
3164L, 3164L, 3179L, 3179L, 3179L, 3168L, 3169L, 3179L, 3170L,
3169L, 3170L, 3178L, 3169L, 3178L, 3169L, 3178L, 3097L, 3170L,
3097L, 3097L, 3177L, 3177L, 3177L, 3164L, 3164L, 3168L, 3168L,
3164L, 3168L, 3179L, 3179L, 3179L, 3097L, 3164L, 3168L, 3169L,
3170L, 3177L, 3178L, 3179L, 3169L, 3178L, 3170L, 3169L, 3097L,
3178L, 3170L, 3170L, 3169L, 3178L, 3168L, 3164L, 3177L, 3177L,
3097L, 3168L, 3168L, 3097L, 3177L, 3164L, 3164L, 3097L, 3164L,
3168L, 3169L, 3170L, 3177L, 3178L, 3179L)), .Names = c("YEAR",
"Entry_Number_F"), class = "data.frame", row.names = c(181L,
182L, 183L, 184L, 185L, 186L, 187L, 188L, 189L, 190L, 191L, 192L,
193L, 194L, 195L, 196L, 197L, 198L, 199L, 200L, 201L, 202L, 203L,
204L, 205L, 206L, 207L, 208L, 209L, 210L, 211L, 212L, 213L, 214L,
215L, 216L, 552L, 553L, 554L, 555L, 556L, 557L, 558L, 559L, 560L,
561L, 562L, 563L, 564L, 565L, 566L, 567L, 568L, 569L, 570L, 571L,
572L, 573L, 574L, 575L, 576L, 577L, 578L, 579L, 580L, 581L, 582L,
583L, 584L, 585L, 586L, 587L, 984L, 985L, 986L, 987L, 988L, 989L,
990L, 991L, 992L, 993L, 994L, 995L, 996L, 997L, 998L, 999L, 1000L,
1001L, 1002L, 1003L, 1004L, 1005L, 1006L, 1007L, 1008L, 1009L,
1010L, 1011L, 1012L, 1013L, 1014L, 1015L, 1016L, 1017L, 1018L,
1019L, 1357L, 1358L, 1359L, 1360L, 1361L, 1362L, 1363L, 1364L,
1365L, 1366L, 1367L, 1368L, 1369L, 1370L, 1371L, 1372L, 1373L,
1374L, 1375L, 1376L, 1377L, 1378L, 1379L, 1380L, 1381L, 1382L,
1383L, 1384L, 1385L, 1386L, 1387L, 1388L, 1389L, 1390L, 1391L,
1392L, 4139L, 4140L, 4141L, 4142L, 4143L, 4144L, 4145L, 4146L,
4147L, 4148L, 4149L, 4150L, 4151L, 4152L, 4153L, 4154L, 4155L,
4156L, 4157L, 4158L, 4159L, 4160L, 4161L, 4162L, 4163L, 4164L,
4165L, 4166L, 4167L, 4168L, 4169L, 4170L, 4444L, 4445L, 4446L,
4447L, 4448L, 4449L, 4450L, 4451L, 4452L, 4453L, 4454L, 4455L,
4456L, 4457L, 4458L, 4459L, 4460L, 4461L, 4462L, 4463L, 4464L,
4465L, 4466L, 4467L, 4468L, 4469L, 4470L, 4471L, 4472L, 4473L,
4474L, 4475L, 4968L, 4969L, 4970L, 4971L, 4972L, 4973L, 4974L,
4975L, 4976L, 4977L, 4978L, 4979L, 4980L, 4981L, 4982L, 4983L,
4984L, 4985L, 4986L, 4987L, 4988L, 4989L, 4990L, 4991L, 4992L,
4993L, 4994L, 4995L, 4996L, 4997L, 4998L, 4999L, 5409L, 5410L,
5411L, 5412L, 5413L, 5414L, 5415L, 5416L, 5417L, 5418L, 5419L,
5420L, 5421L, 5422L, 5423L, 5424L, 5425L, 5426L, 5427L, 5428L,
5429L, 5430L, 5431L, 5432L, 5433L, 5434L, 5435L, 5436L, 5437L
))
我们现在可以在每个子集中看到独特的条目。
unique(df2.2017$Entry_Number_F)
unique(df2.2016$Entry_Number_F)
以上说明:
2017 年有 9 个独特的条目2016 年有 8 个独特的条目他们共享 6 个独特的条目。因此:6/11 = 0.6666667
下面的代码也会返回这个数字。
length(Reduce(intersect, list(df2.2017$Entry_Number_F, unique(df2.2016$Entry_Number_F))))/length(unique(df2.2017$Entry_Number_F))
这会让我的问题更清楚吗?由于篇幅限制,我无法提供更多数据,但如果我有更多年份,我将如何比较所有年份?
示例 here ,使用 crossprod(table(stack(l))) 似乎是可能的,但我不确定如何将每年的唯一条目列表放入列表中。
一位教 R 的同事说“expand.grid、outer 和 lapply 可能是可行的方法。”但他没有时间详细说明。
最佳答案
这不会给出与您的输出相同的答案,但也许它确实是您想要的。使用 length(y)
代替 length(x)
如果你想要转置并使用 s <- rev(s)
如果您希望年份以相反的顺序出现。
prop <- function(x, y) length(intersect(x, y)) / length(x)
s <- with(unique(df), split(Entry_Number_F, YEAR))
outer(s, s, Vectorize(prop))
给予:
2013 2014 2015 2016 2017
2013 1.0000000 0.8000000 0.8000000 0.8000000 0.8000000
2014 0.8000000 1.0000000 1.0000000 1.0000000 1.0000000
2015 0.3636364 0.4545455 1.0000000 0.4545455 0.5454545
2016 0.5000000 0.6250000 0.6250000 1.0000000 0.8750000
2017 0.3636364 0.4545455 0.5454545 0.6363636 1.0000000
关于r - 在 R 中,如何轻松返回类别组合之间的共同唯一元素的比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50066323/
我尝试将resteasy与自定义对象一起使用,当我创建jar文件时,它与intellij IDE一起工作正常,但失败并出现以下异常 org.jboss.resteasy.core.NoMessageB
我正在寻找一种在easy-close选项为TRUE时基于Shiny模态关闭触发事件的方法(因此,在模态外部单击将其关闭)。由于没有链接到模式的ID,因此我似乎无法捕获此事件。我尝试在“观察”事件中包装
假设我有一些定义如下的类: class Security { Boolean AuthenticateUser(String username, String password); B
正如标题所说,Coq 可以用作模型检查器吗?我可以将模型检查与 Coq 证明混合使用吗?这是常态吗?谷歌谈论“微积分”,有没有人有这方面的经验或类似的经验?是否建议以这种方式使用 Coq,或者我应该寻
是否有一种方法(设置或快捷方式)可以显示输出超过 500 行的查询的总行数 - 即,无需修改首选项中的“结果集页面大小”值?我本质上是在寻找 select count(*) from () t 的输出
我想这样做: System.out.println("안녕하세요!"); 但是当我尝试在 Eclipse 中进行编译时,出现“某些字符无法使用 MacRoman 字符编码进行编码”弹出式错误消息。我正
如果我有一个用这样的字符串初始化的框架 setter CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(at
所以这里没有什么新内容,我只是想得到一些澄清,但似乎在其他帖子中找不到任何澄清。 我正在安静地创建一个新资源,例如: /books (POST) 有一个 body : { title: 'The
我有很多预处理器宏定义,如下所示: #define FOO 1 #define BAR 2 #define BAZ 3 在实际应用中,每个定义对应一个解释器虚拟机中的一条指令。宏的编号也不是连续的,以
使用 SpriteKit 开发 iOS 游戏。我的背景由 map block 组成(本质上是无限 map ,程序生成)。 我们的系统旨在管理 map 的“ block ”,我们只加载玩家附近的 blo
我需要在 Ruby 中拆分一个具有以下格式的字符串: [{a:1,b:2,c:3,d:4},{a:5,b:6,c:7,d:8},{a:9,b:10,c:11,d:12},{a:13,b:14,c:1
Linq 有一个名为 Take() 的便捷运算符方法,可以返回任何实现 IEnumerable 的元素中给定数量的元素。 jQuery 中是否有类似的东西可以处理数组? 或者,换个方式问:如何在 Ja
每当我使用以下代码在文档中插入图像时, var cursor = DocumentApp.getActiveDocument().getCursor(); var image = cursor
今天看到这样一段代码: if ( not defined($reply_address) or not defined($from_name) or not defined(
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
刚刚了解 mercurial 的 --style和 --template可用于 hg log 的选项和 hg tip我发现它们非常有帮助,但我不知道把我的“样式文件”放在哪里 我有一个“样式文件”,它
是否有一些应用程序可以自动 bundle (并缩小)包含 require('file.js') 调用的 JS 项目?这样它们就会合并并生成一个文件。 具体来说,我正在谈论when.js ,一个带有大量
如何(轻松)获取 Sublime Text 3 中的当前文件路径 我不经常使用 ST 控制台(我只使用它一次来安装包管理器),但我认为这可能是一个好方法: 像某种pwd命令一样获取当前文件路径。 但这
嗨,我正在使用resteasy api,我需要使用Map作为QueryParam。我可以使用列表作为 QueryParam,但是当我尝试传递 Map 时,我收到下面提到的错误。 这是我的服务代码 @G
假设我有一个 C++ 代码(请参阅下面的简单示例)。我想让期刊审稿人轻松安装/运行 所以我认为最简单的方法是将其变形为简化的类 R 包的 tar.gz 文件,以便裁判可以安装它通过简单地调用 inst
我是一名优秀的程序员,十分优秀!