首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >子集dataframe使用将重置为1的计数器,并为每个子集创建数据

子集dataframe使用将重置为1的计数器,并为每个子集创建数据
EN

Stack Overflow用户
提问于 2020-11-19 07:41:09
回答 2查看 22关注 0票数 1

我有一个数据文件,我需要分解成多个,更小的数据格式。

有一个整数索引,从1开始并计数。当它重置为1时,我需要开始创建一个新的dataframe。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df <- cbind(c(1,2,3,4,5,1,2,3,4), c("a","b","c","d","e","f","g","h","i"))

#end results should be: 
df1 <- df[1:5, ]
df2 <- df[6:9, ]

如何以编程方式完成此操作?我可以找到所有的“1”都在哪里,但我如何逐行并将其分解成不同的数据格式呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-19 08:02:59

在您的示例中,df是一个字符矩阵,而不是一个data.frame。要定义data.frame对象,请使用例如data.frame(index = c(1,2,3,4,5,1,2,3,4), value = c("a","b","c","d","e","f","g","h","i")

查找每个组的第一个值的索引,然后按组拆分。您不需要执行任何逐行操作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df <- data.frame(index = c(1,2,3,4,5,1,2,3,4), value = c("a","b","c","d","e","f","g","h","i"))
 
split(df, cumsum(df$index == 1))

结果是data.frame对象的列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$`1`
  index value
1     1     a
2     2     b
3     3     c
4     4     d
5     5     e

$`2`
  index value
6     1     f
7     2     g
8     3     h
9     4     i
票数 2
EN

Stack Overflow用户

发布于 2020-11-19 07:52:18

使用索引和循环来尝试这种方法。我们创建i1来存储有1的行。然后计算i2中的最终位置。之后,我们创建一个列表并使用一个循环来存储新的数据。最后,我们使用list2env为环境分配名称和发布。在这里,代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#Create index
i1 <- which(df[,1]=='1')
i2 <- i1[-1]-1
#Test for dim
if(length(i2==1)){i2 <- c(i2,nrow(df))}
#Create a list
List <- list()
#Loop
for(j in 1:length(i1))
{
  List[[j]] <- df[i1[j]:i2[j],]
}
#Assign names
names(List) <- paste0('df',1:length(List))
#Set to envir
list2env(List,envir = .GlobalEnv)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64915006

复制
相关文章
子集
给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。
WindRunnerMax
2020/09/22
5200
pandas获取数据子集
数据子集是原始数据集的部分观察或者变量或者部分观察与变量,这是一个数据选择过程(按着业务的目标选择所需的观察和变量)。
陆勤_数据人网
2019/06/15
1.6K0
[Leetcode][python]Subsets/Subsets II/子集/子集 II
参考: https://shenjie1993.gitbooks.io/leetcode-python/078%20Subsets.html 举个例子,集合[1]有[[],[1]]两个子集,当向其中添加一个元素时,[1,2]有[[],[1],[2],[1,2]]四个子集,可以看出来,在新添加一个元素的时候,是在原来子集的基础上,添加原子集中所有元素加上新元素的总集合。为了每个子集中的元素都是不降序的,要先把所有元素都排序。
蛮三刀酱
2019/03/26
1.1K0
【python-leetcode90-子集】子集Ⅱ
输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ]
西西嘛呦
2020/08/26
7200
1-4子集模板
输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] class Solution { List<List<Integer>> res=new ArrayList<>(); List<Integer> temp=new ArrayList<Integer>(); public List<List<Integer>> subsets(int[] nums) { helper
CaesarChang张旭
2021/07/01
2430
【python-leetcode78-子集】子集
输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
西西嘛呦
2020/08/26
6330
使用模式构建:子集模式
在多年前,第一代PC拥有高达256KB的RAM和两个5.25英寸的软盘驱动器。没有硬盘,因为在当时它们极为昂贵。这些限制导致在处理大量(对那时来说)数据时由于内存不足,必须在物理上交换软盘。如果当时有办法只把我经常使用的数据(如同整体数据的一个子集)放入内存就好了。
MongoDB中文社区
2019/05/09
7210
使用模式构建:子集模式
LeetCode | 子集
题目 78. 子集 - 力扣(LeetCode) 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1:
yiyun
2023/04/06
3380
LeetCode | 子集
LeetCode - 子集
原题地址: https://leetcode-cn.com/problems/subsets/
晓痴
2019/07/24
6780
LeetCode - 子集
Leetcode|子集|78. 子集(回溯+first索引)
简而言之,就是[1, 2, 3]包含[1, 2]的子集,通过递归实现。但时间复杂度过高,为 O(N⋅2N),因此我在力扣上提交也显示内存超时,但为了学习还是把代码放出来
SL_World
2021/09/18
3430
子集 II
在本质上是一个组合问题,以一个长度为4的数组[1, 2, 3, 4]组合2个值为例,每两个组合一个数组可取1组合其数组中之后的值,2与其数组中之后值,3与其数组中之后的值,4与其数组中之后值,即[1, 2]、[1, 3]、[1, 4]、[2, 3]、[2, 4]、[3, 4],按照这个思路就需要取出给定数组的1 ~ length长度的组合,这是在给定的数组中没有重复值的情况下,题目中要求会有重复的值,所以在加入的时候我们就需要对其进行操作,首先我们对其进行排序,这样重复的值就会在一起,之后判定对于给定目标长度的数组重复的值只加入一个即可。首先定义目标数组,空数组是所有的数组的子集,所以将空数组置入,之后取得传入的数组的长度n,如果长度为0则直接返回目标数组,之后对其进行排序,之后定义深度递归遍历,首先进行剪枝,如果当前tmp数组的大小为s,未确定状态的区间[cur,n]的长度为t,如果s + t < limit,那么即使t个都被选中,也不可能构造出一个长度为limit的序列,故这种情况就没有必要继续向下递归,之后判断递归深度如果与limit相等则直接将tmp数组置入目标数组并返回,之后定义一个循环,在这里我们要处理数字重复的情况,先前已经对其进行排序,所以每次递归后的循环对于数组中重复的值,我们只将第一个置入数组,其他的都忽略,从cur开始到n进行递归取值,将tmp数组与cur构建一个新数组传递到下一个递归中,之后定义一个循环取得要取得的子集的数组长度,启动递归初始化cur为0,深度deep为0,tmp为一个空数组,limit为i+1,递归完成后返回目标数组即可。
WindRunnerMax
2020/11/12
4650
枚举{1,2,3,4}子集
#include <stdio.h> int main() { int X[4] = {}, i, count = 0; int n = 4; for(X[4]=0;X[4]<2;X[4]++) for(X[3]=0;X[3]<2;X[3]++) for(X[2]=0;X[2]<2;X[2]++) for(X[1]=0;X[1]<2;X[1]++) { printf("{"); for(i=1;i<=n;i++) if(X[i])
砖业洋__
2023/05/06
1040
java 判断 子集_java – 获取集合子集的策略
我有一个场景,我的应用程序可以访问有限时间窗口的会话,在此期间它必须从数据库中获取数据到内存中,然后只使用内存中的数据来处理请求.
用户7886150
2021/04/29
1.1K0
75.子集
回溯法 这里要注意,由于我们同一集合不同顺序的结果算同一种结果,因此我们在考虑的时候要进行排序已有元素类型的情况
名字是乱打的
2021/12/23
3410
75.子集
SAS求子集
前几天在微信群里看到一个问题:求一个数组的子集。SAS中实现排列的方法有多种,最易懂的方法应该是PROC SUMMARY以及CALL ALLCOMB,两种方法的代码在这里。下面介绍一个DATA步一步到位的方法:
专业余码农
2020/07/15
7920
78. 子集
解:标准dfs深度优先回溯算法。回溯算法的基本形式是“递归+循环”,正因为循环中嵌套着递归,递归中包含循环,这才使得回溯比一般的递归和单纯的循环更难理解,其实我们熟悉了它的基本形式,就会觉得这样的算法难度也不是很大。原数组中的每个元素有两种状态:存在和不存在。
张伦聪zhangluncong
2022/10/26
2470
78. 子集
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subsets 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
lucifer210
2019/10/28
5260
78. 子集
3-3 数据框的子集
> x <- data.frame(v1=1:5,v2=6:10,v3=11:15) > x v1 v2 v3 1 1 6 11 2 2 7 12 3 3 8 13 4 4 9 14 5 5 10 15 > x$v3[c(2,4)] <- NA > x v1 v2 v3 1 1 6 11 2 2 7 NA 3 3 8 13 4 4 9 NA 5 5 10 15 > #找出第2列 > x[,2] [1] 6 7 8 9 10 > x[,"v2"] [1] 6 7 8 9 10 > x[
hankleo
2020/09/16
4430
DestinationRule子集配置
除了上述示例中的全局配置之外,我们还可以为每个服务定义多个不同的子集,并为每个子集定义不同的流量策略。这种方法常用于服务版本控制和灰度发布等场景。
玖叁叁
2023/05/05
3871
LeetCode78.子集
 dfs经典题,对每一个数字都有一个boolean数组去对应,没选过就是false,选过就是true,在边界条件中进行枚举,将所有结果为true的下标对应的数值添加到List中即可  不好想的地方在于递归的部分,每个数都可以选或者不选,那么如何来表示选,选了就将v[idx]标记为true,不选就将v[idx]标记为false,不论选还是不选,都要进行递归
mathor
2018/07/24
5010
LeetCode78.子集

相似问题

在dataframe子集上运行群集函数,并为dataframe中的每个子集编写结果

15

创建Dataframe的子集

10

将dataframe分解为新的子集/组数据。从其他dataframe创建数据子集/组的新数据格式

22

如何使用VBA为每个子集创建子集和计算回归

11

如何将熊猫数据子集索引重置为默认

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文