我有一个表格数据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
我是通过使用循环来完成的,但它不是很优雅。
如果没有复杂的循环,如何做到这一点?
答案 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`?