R从数据框中选择所有行,其中列的值与向量相交

时间:2017-01-11 04:58:03

标签: r dataframe

我有一个数据框,其中一列是矢量。我想从我的数据框中选择该列与另一个向量相交的所有行。

编辑: 这是示例代码和输出。

require(dplyr)

# DataSet
df = read.csv('data/exampledata.csv', na.strings=c(""), header=TRUE, stringsAsFactors=FALSE)
df[is.na(df)] <- 'None'
df$COLUMN3 <- strsplit(df$COLUMN3, "/")
dput(df)
myVector <- c("me", "stackoverflow")
df[length(intersect(df$COLUMN3, myVector)) > 0,] # doesn't work

输出:

structure(list(COLUMN1 = c("something", "something", "something"), COLUMN2 = c("something", "something", "something"), COLUMN3 = list(c("please", "help", "me"), c("please", "stackoverflow"), c("im", "desperate"))), .Names = c("COLUMN1", "COLUMN2", "COLUMN3"), row.names = c(NA, -3L), class = "data.frame")

1 个答案:

答案 0 :(得分:1)

column3 = list(c("please", "help", "me"), c("please", "stackoverflow"), c("im", "desperate"))
myVector <- c("me", "please")
idx <- which(sapply(column3, function(x) length(intersect(myVector, x))) > 0)

idx应该根据需要提供c(1,2)。然后执行df[idx,]

顺便说一下,使用矢量列表作为数据帧列之一并不是一个好主意。它有点工作......并且根据操作不起作用。 data.table更好地支持它。