首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于列拆分数据集

基于列拆分数据集
EN

Stack Overflow用户
提问于 2019-02-27 12:25:53
回答 2查看 708关注 0票数 0

我希望根据列中的值将数据集拆分为R中的2

我的数据是这样的(例如)

代码语言:javascript
复制
Sn  no   State
1   22   ALL
2   33   BALL
3   44   FALL
4   55   ALL
5   77   MALL
6   11   FALL

我想把它分割成两个数据集,基于一个变量,比如A=40,它通过签入第二列来拆分数据集(一个数据集的值大于40个,另一个数据集的值小于40个)。输出如下:-

代码语言:javascript
复制
1   24   ALL
2   35   BALL
6   11   FALL

代码语言:javascript
复制
3   44   FALL
4   55   ALL
5   77   MALL
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-27 12:40:43

假设您有一个有列(Sn,no,State)的dataframe,您可以使用以下方法在第二列上拆分:

代码语言:javascript
复制
 df[df$no > 40, ]
票数 1
EN

Stack Overflow用户

发布于 2019-02-27 12:54:05

这个问题看上去是下面更具体的版本,请查看这个线程,以获得建议的拆分()函数的详细内容。

Split data.frame based on levels of a factor into new data.frames

要以上面描述的准确方式返回两个单独的数据格式,我建议查看subsetting。

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

df <- tibble(
        no = c(22, 33, 44, 55, 77, 11),
        State = c('ALL', 'BALL', 'FALL', 'ALL', 'MALL', 'FALL')) %>%
        mutate(Sn = row_number())

glimpse(df)
Observations: 6
Variables: 3
$ no    <dbl> 22, 33, 44, 55, 77, 11
$ State <chr> "ALL", "BALL", "FALL", "ALL", "MALL", "FALL"
$ Sn    <int> 1, 2, 3, 4, 5, 6


df_greatertthan40 <- subset(df, no > 40)
df2_lessthan40 <- subset(df, no < 40)

有许多选项可用于细分/拆分,请参阅Advanced中的“细分”一章,以获得其他选项:http://adv-r.had.co.nz/Subsetting.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54905461

复制
相关文章

相似问题

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