首页 > 解决方案 > 根据列中的(二分法)值拆分数据框

问题描述

我正在使用一个大型数据框,其中包含“性别”作为列之一。它看起来像这样

OriginalDF

SEX X1 X2 X3 X4
0   15 91 12 25
1   12 92 32 35
1   14 94 12 45
0   12 91 42 15
0   11 95 12 25

我希望能够根据二进制性别变量将其转换为两个单独的数据帧;

DF1

SEX X1 X2 X3 X4
0   15 91 12 25
0   12 91 42 15
0   11 95 12 25

DF2

SEX X1 X2 X3 X4
1   12 92 32 35
1   14 94 12 45

我怎样才能有效地做到这一点?

提前致谢!

标签: r

解决方案


# Using data frames
DF1 <- OriginalDF[OriginalDF$SEX == 0, ]
DF2 <- OriginalDF[OriginalDF$SEX == 1, ]

# If it's very large, I recommend you data.table
library(data.table)
OriginalDT <- data.table(OriginalDF)
DT1 <- OriginalDT[SEX == 0]
DT2 <- OriginalDT[SEX == 1]

推荐阅读