根据特定列采用的值对数据框进行子集化
Subsetting data frame based on values a particular column takes
这是一个简单的例子,它的解决方案对我有很大帮助。
v.1<- c(5,8,7,2)
v.2<- c("hi", "hello", "hum", "bo")
df<- data.frame(v.1, v.2)
desired.values<- c("hi", "bo")
我想要 v.2 包含 desired.values 之一的数据集的所有行。
期望的输出:
5 "hi"
2 "bo"
在我的真实数据集中,v.2 有超过 10000 个值,desired.values 包含超过 2000 个值。
你可以试试data.table
library(data.table)
setkey(setDT(df),v.2)[desired.values]
或使用base R
方法
df[df$v.2 %in% desired.values,]
或
df[grep(paste(desired.values, collapse="|"), df$v.2),]
这是一个简单的例子,它的解决方案对我有很大帮助。
v.1<- c(5,8,7,2)
v.2<- c("hi", "hello", "hum", "bo")
df<- data.frame(v.1, v.2)
desired.values<- c("hi", "bo")
我想要 v.2 包含 desired.values 之一的数据集的所有行。
期望的输出:
5 "hi"
2 "bo"
在我的真实数据集中,v.2 有超过 10000 个值,desired.values 包含超过 2000 个值。
你可以试试data.table
library(data.table)
setkey(setDT(df),v.2)[desired.values]
或使用base R
方法
df[df$v.2 %in% desired.values,]
或
df[grep(paste(desired.values, collapse="|"), df$v.2),]