首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据分解为较小的数据,并保存它们

将数据分解为较小的数据,并保存它们
EN

Stack Overflow用户
提问于 2018-11-19 14:28:54
回答 4查看 304关注 0票数 2

需要帮助根据列间隔动态地将一个数据分割成多个较小的数据,也保存。示例:

代码语言:javascript
运行
复制
x = data.frame(num = 1:26, let = letters, LET = LETTERS)

上面的dataframe x需要根据num中的值分裂为较小的数据格式,间隔为5。结果将是6个数据格式。

代码语言:javascript
运行
复制
> 1.    0 – 5
> 2.    6 – 10
> 3.    11 – 15
> 4.    16 -20
> 5.    21 -25
> 6.    26 – 30
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-11-19 14:49:08

您可以使用split函数和cut函数来执行操作:

代码语言:javascript
运行
复制
x = data.frame(num = 1:26, let = letters, LET = LETTERS)

answer<-split(x, cut(x$num, breaks=c(0, 5, 10, 15, 20, 25, 30)))

然后,您可以将此列表传递给lapply进行进一步处理。

票数 5
EN

Stack Overflow用户

发布于 2018-11-19 14:50:08

使用潮间带

代码语言:javascript
运行
复制
library(tidyverse)

x = data.frame(num = 1:26, let = letters, LET = LETTERS)


##Brake the data frame
y <- x %>%
  mutate(group = cut_width(num,5, boundary = 0,closed = "right"))

##Put them into a list
list_1 <- lapply(1:length(unique(y$group)),
                function(i)filter(y, group == unique(y$group)[i]))
票数 2
EN

Stack Overflow用户

发布于 2018-11-19 15:02:24

还可以考虑按5的倍数标记记录,然后运行by,即将数据帧拆分为一个或多个因素的函数:

代码语言:javascript
运行
复制
df <- data.frame(num = 1:26, let = letters, LET = LETTERS)

df$grp <- ceiling(df$num / 5)

df_list <- by(df, df$grp, function(sub) transform(sub, grp=NULL))

输出

代码语言:javascript
运行
复制
df_list

# df$grp: 1
#   num let LET
# 1   1   a   A
# 2   2   b   B
# 3   3   c   C
# 4   4   d   D
# 5   5   e   E
# ------------------------------------------------------------------------------------------- 
# df$grp: 2
#    num let LET
# 6    6   f   F
# 7    7   g   G
# 8    8   h   H
# 9    9   i   I
# 10  10   j   J
# ------------------------------------------------------------------------------------------- 
# df$grp: 3
#    num let LET
# 11  11   k   K
# 12  12   l   L
# 13  13   m   M
# 14  14   n   N
# 15  15   o   O
# ------------------------------------------------------------------------------------------- 
# df$grp: 4
#    num let LET
# 16  16   p   P
# 17  17   q   Q
# 18  18   r   R
# 19  19   s   S
# 20  20   t   T
# ------------------------------------------------------------------------------------------- 
# df$grp: 5
#    num let LET
# 21  21   u   U
# 22  22   v   V
# 23  23   w   W
# 24  24   x   X
# 25  25   y   Y
# ------------------------------------------------------------------------------------------- 
# df$grp: 6
#    num let LET
# 26  26   z   Z
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53376759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档