R - 如何制作子表?

时间:2015-04-09 14:00:00

标签: r

我有一个表格数据1,如下所示:

V1 V2 V3
A  B  1
A  C  1
A  D  0
A  E  1
A  F  0
A  G  0
A  H  0

我想提取一个子表格data2并将所有行保存在V3 == 1之类的地方:

V1 V2 V3
A  B  1
A  C  1
A  E  1

我是通过使用循环来完成的,但它不是很优雅。

如果没有复杂的循环,如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用子集功能:

data2 <- subset (data1, V3 == 1)

<强> 数据

data <- data.frame(V1=c("A", "A", "A", "A", "A", "A", "A"),
                   V2=c("B", "C", "D", "E", "F", "G", "H"),
                   V3=c(1, 1, 0, 1, 0, 0, 0))

答案 1 :(得分:1)

在R中有很多方法可以做到这一点。 最常见的列表如下。

# Selecting observations on conditions
data2 <- data1[V3 == 1, ]

# Excluding observations on conditions
data2 <- data1[!V3 != 1, ]

# Subset function
data2 <- subset(data1, V3 == 1)

#using packages:

# dplyr package
library(dplyr)
data2 <- filter(data1, V3 == 1)

# data.table package
library(data.table)
data2 <- setDT(data1)[V3 == 1]

大多数R用户都没有使用subset功能,原因在于此帖:Why is `[` better than `subset`?