-1
df=read.delim("names.csv")
> df
        name
1     LIDSAY
2    STEFANY
3   FEDERICO
4   LEONARDO
5    DOROTHY
6       RUTH
7        AMR
8    Mohamed
9   FLORENCE
10     MANAL
11   MILDRED
12    FARIDA
13   LILLIAN
14    SYLVIA
15 ELIZABETH
16   FRANCES
17    EVELYN
18     MARIE
19   SHIRLEY
20       AMR

当我要求以下从列表中返回名称 farida 时,它只写 integer(0)

t=grep ("FARIDA", names(df))
4

2 回答 2

2

这是因为您names出于某种原因调用它会返回:

names(df)

> names(df)
[1] "name"

试试这个:

grep ("FARIDA", df$name)

PS:也许您会发现%in%它有用,因为它给出了逻辑 TRUE/FALSE 并且比grep. which如果您需要特定索引或使用逻辑向量,请将其包装起来,如下所示:

df$name %in% "FARIDA"

## With indexing
df[df$name %in% "FARIDA", ]
于 2013-06-23T01:50:50.350 回答
1

替代解决方案使用which

which(df$name=="FARIDA")

  [1] 12
于 2013-06-23T03:46:02.540 回答