87
I'm interpreting your question to be about getting row numbers.
as.numeric(rownames(df)) if you haven't set the rownames. Otherwise use a sequence of 1:nrow(df). which() function converts a TRUE/FALSE row index into row numbers. It not quite clear what exactly you are trying to do.
To reference a row in a data frame use df[row,]
To get the first position in a vector of something use match(item,vector), where the vector could be one of the columns of your data frame, eg df$cname if the column name is cname.
Edit:
To combine these you would write:
df[match(item,df$cname),]
Note that the match gives you the first item in the list, so if you are not looking for a unique reference number, you may want to consider something else.