- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 5 个不同组的数据框:
id group
1 L1 1
2 L2 1
3 L1 2
4 L3 2
5 L4 2
6 L3 3
7 L5 3
8 L6 3
9 L1 4
10 L4 4
11 L2 5
id
从第 1 组开始,第 1 组和第 2 组,第 1 组、第 2 组和第 3 组等等,没有循环。我正在用
dplyr
寻找方法或
data.table
包裹。
group id
1 1 c("L1", "L2")
2 1,2 c("L1", "L2", "L3", "L4")
3 1,2,3 c("L1", "L2", "L3", "L4", "L5")
4 1,2,3,4 c("L1", "L2", "L3", "L4", "L5")
5 1,2,3,4,5 c("L1", "L2", "L3", "L4", "L5")
structure(list(id = c("L1", "L2", "L1", "L3", "L4", "L3", "L5",
"L6", "L1", "L4", "L2"), group = structure(c(1L, 1L, 2L, 2L,
2L, 3L, 3L, 3L, 4L, 4L, 5L), .Label = c("1", "2", "3", "4", "5"
), class = "factor")), .Names = c("id", "group"), row.names = c(NA,
-11L), class = "data.frame")
最佳答案
使用基础 R,您可以执行以下操作:
# create the "growing" sets of groups
combi_groups <- lapply(seq_along(unique(df$group)), function(i) unique(df$group)[1:i])
# get the unique ID for each set of groups
uniq_ID <- setNames(lapply(combi_groups, function(x) unique(df$id[df$group %in% x])),
sapply(combi_groups, paste, collapse=","))
# $`1`
# [1] "L1" "L2"
# $`1,2`
# [1] "L1" "L2" "L3" "L4"
# $`1,2,3`
# [1] "L1" "L2" "L3" "L4" "L5" "L6"
# $`1,2,3,4`
# [1] "L1" "L2" "L3" "L4" "L5" "L6"
# $`1,2,3,4,5`
# [1] "L1" "L2" "L3" "L4" "L5" "L6"
data.frame(group=sapply(combi_groups, paste, collapse=", "), id=sapply(uniq_ID, function(x) paste0("c(", paste0("\"", x, "\"", collapse=", "), ")")))
# group id
#1 1 c("L1", "L2")
#2 1, 2 c("L1", "L2", "L3", "L4")
#3 1, 2, 3 c("L1", "L2", "L3", "L4", "L5", "L6")
#4 1, 2, 3, 4 c("L1", "L2", "L3", "L4", "L5", "L6")
#5 1, 2, 3, 4, 5 c("L1", "L2", "L3", "L4", "L5", "L6")
data.frame(group=rep(names(uniq_ID), sapply(uniq_ID, length)), id=unlist(uniq_ID))
uniq_ID
在列中:
library(data.table)
data.table(group=sapply(combi_groups, paste, collapse=", "), id=uniq_ID)
# group id
#1: 1 L1,L2
#2: 1, 2 L1,L2,L3,L4
#3: 1, 2, 3 L1,L2,L3,L4,L5,L6
#4: 1, 2, 3, 4 L1,L2,L3,L4,L5,L6
#5: 1, 2, 3, 4, 5 L1,L2,L3,L4,L5,L6
data.table(group=sapply(combi_groups, paste, collapse=", "), id=uniq_ID)[2, id]
[[1]]
[1] "L1" "L2" "L3" "L4"
关于r - 第 1 组的唯一值,然后是第 1 组和第 2 组,依此类推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43866137/
假设我有一个非常大的 data.frame,其中包含每列的分数。 例如: MA0001.1 AGL3 MA0003.1 TFAP2A MA0004.1 Arnt MA0005.1 AG MA00
假设我有一个这样的列表: lst <- list(list(1,2,3),list(4,5,6),list(7,8,9)) 然后我想提取元素 1、5 和 9。我应该如何高效地提取元素?我遇到过这篇文章
如何在oracle sql中的表中选择前x行,然后选择下x行,依此类推?我知道我可以使用TOP/LIMIT,然后得到第一个x select a from b limit 150 =>获取前150行。
我有以下脚本可循环浏览特定类型的文件,并获取有关其创建的date和time的信息: @echo off setlocal call :getCreationInfo cmd /k :getCreati
Blockquote //This function returns the array in such a way that the first element is the first minim
当我想循环遍历并再次返回等等时,使用什么是一个好的列表结构?我现在使用扩展的 ArrayList 和自定义方法来向前和向后循环等。 Java (Android) 是否提供了一个列表类型,我可以在不扩展
我需要将输入视为: 1 2 3 4 5 6 7 8 9 10 11 12 等等。 这就是我一直在尝试的 - for(k = 0; k < n; k++) while(scanf("%d", &
我有两个这样的数组 第一个数组是 array1[ 0:"7@a.com" 1:"6@live.com" 2:"5@live.com" 3:"55@a.com" 4:"4@live.com" 5:"3@
我使用以下命令导入数据库条目,通过列出数据库中从第一个条目到最后一个条目的内容,它可以正常工作: users_temp = users.objects.all() --> 其中 users 是我数据库
目前我有 2 个列表,我将它们分开 a = [5,6,7,8] b = [100,200,300,400] output = [b/m for b,m in zip(a,b)] 但是由于我的数据库的性
我是编程新手,正在学习 C++ Primer 第 5 版。其中一个练习要求我将一组整数输入到一个 vector 中,并打印第一个和最后一个元素的总和,然后是第二个和倒数第二个等等。 我尝试了多种方法,
我目前正在做一项关于创建联系人然后检索另一个页面中的信息的作业。我有这个页面,其中有 的列表将显示已创建的联系人。我陷入了这一点,当我单击这个包含数组元素之一(例如姓氏)的值的某个 li 时,我可以
我想我可能只是缺少一些明显的语法,但是选择前 10 条记录,然后是下 10 条记录的 sql (oracle) 是什么? 我尝试使用 rownum,但似乎可以让 rownum > X 和 rownum
抱歉,我是 javascript 的新手 我当前的输出,来自用户输入“多么美好的一天”: what abea utif ulda y 我如何获取每个单词的第一个字母以获得类似这样的输出: wauuy
我在检索地址簿的姓氏时遇到问题。我只想按字母表中的每个字母检索姓氏。 这是我到目前为止的代码 ABAddressBookRef addressBook = ABAddressBookCreate();
我将此 JS 函数绑定(bind)到 HTML 按钮 onclick 属性: function AddFbLikes() { $('#fbform').on('submit', function(e)
所以我有一个这样的 df In [1]:data= {'Group': ['A','A','A','A','A','A','B','B','B','B'], 'Name': [ ' Sheld
我有一个问题,如何从表格中获取最高值,然后获取最低值,然后获取第二高值。 例如:表中 Name Value ---------------------- Apple 2 P
我正在尝试实现以下目标:当我单击该段落时,我的第一个函数将运行,然后再次单击该段落,第二个函数将运行,然后再次单击该段落,第三个函数将运行,依此类推。当我单击该段落时,所有功能都会运行,我只实现了第二
我有一个包含 5 个字符串字段的对象,名为 String1 到 String5。当我从对象中删除 String1 时,我必须更新这些值,以便 String1 将具有 String2 值,依此类推,还有
我是一名优秀的程序员,十分优秀!