我有一个包含许多列的数据框,但第一列包含名称。
我有一个名单。
如果第一列的名称在我的列表中,我只想保留数据帧的行。
例如,如果我将此作为我的数据帧:
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?
}
答案 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,]