Предположим, что у меня есть список или кадр данных в R, и я хотел бы получить индекс строки, как я делаю это? Таким образом, я хотел бы знать, из какого количества строк определенная матрица состоит.
Я интерпретирую ваш вопрос как получение номеров строк.
as.numeric(rownames(df))
, если вы не задали rownames. В противном случае используйте последовательность 1:nrow(df)
. which()
преобразует индекс строки TRUE/FALSE в номера строк. Не совсем понятно, что именно вы пытаетесь сделать.
Для ссылки на строку в кадре данных используйте df[row,]
Для получения первой позиции в векторе чего-либо используйте match(item,vector)
, где вектор может быть одним из столбцов вашего кадра данных, например df$cname
, если имя столбца - cname.
Редактировать:
Чтобы объединить их, напишите:
df[match(item,df$cname),]
Обратите внимание, что match дает первый элемент в списке, так что если вы не ищете уникальный номер ссылки, возможно, вам стоит выбрать что-то другое.
Если я понимаю ваш вопрос, вы просто хотите иметь доступ к элементам во фрейме данных (или списке) по строке :
x = matrix( ceiling(9*runif(20)), nrow=5 )
colnames(x) = c("col1", "col2", "col3", "col4")
df = data.frame(x) # create a small data frame
df[1,] # get the first row
df[3,] # get the third row
df[nrow(df),] # get the last row
lf = as.list(df)
lf[[1]] # get first row
lf[[3]] # get third row
и т. Д.