R-仅在行名称在列表中时保留数据帧行

时间:2014-05-05 00:31:38

标签: r

我有一个包含许多列的数据框,但第一列包含名称。

我有一个名单。

如果第一列的名称在我的列表中,我只想保留数据帧的行。

例如,如果我将此作为我的数据帧:

 names     birthday
 Alice     June
 Bob       May
 Eve       December

我将此作为我的清单:

 list_of_names <- c("Alice","Bob")

我想得到:

 names     birthday
 Alice     June
 Bob       May

我想也许是一个for循环,就像这样:

for (i in list_of_names) {
  #if i is in df$names, append to new df?
}

2 个答案:

答案 0 :(得分:3)

%in%运算符将在此处提供帮助

dd<-data.frame(names=c("Alice","Bob","Eve"), birthday=c("June","May","December"))
subset(dd, names %in% c("Alice","Bob"))

答案 1 :(得分:1)

newdf <- df[df$names %in% list_of_names,]

应该这样做,甚至可能

rownames(df) <- df$names
newdf <- df[list_of_names,]