programing

R에서 행 인덱스 번호를 얻는 방법은?

newstyles 2023. 9. 11. 21:31

R에서 행 인덱스 번호를 얻는 방법은?

R에 리스트나 데이터 프레임이 있다고 가정하고 행 인덱스를 구하고 싶은데 어떻게 해야 하나요?즉, 특정 행렬이 몇 개의 행으로 구성되어 있는지 알고 싶습니다.

저는 당신의 질문을 행 번호를 얻는 것으로 해석하고 있습니다.

  • 해봐도 좋습니다.as.numeric(rownames(df))이름을 못 정하셨다면요그렇지 않으면 다음 순서를 사용합니다.1:nrow(df).
  • which()함수는 TRUE/FALSE 행 인덱스를 행 번호로 변환합니다.

당신이 정확히 무엇을 하려고 하는지 확실히 알 수 없습니다.

데이터 프레임에서 행을 참조하려면사용df[row,]

어떤 것의 벡터에서 첫 번째 위치를 얻기 위해서는match(item,vector), 벡터가 데이터 프레임의 열 중 하나일 수 있습니다. 예를 들어,df$cname열 이름이 cname인 경우.

편집:

이들을 결합하기 위해서는 다음과 같이 적어야 합니다.

df[match(item,df$cname),]

일치 항목은 목록의 첫 번째 항목을 제공하므로 고유한 참조 번호를 찾는 것이 아니라면 다른 항목을 고려할 수 있습니다.

row인에?base::row. 이것은 행렬 같은 객체에 대한 행 인덱스를 제공합니다.

rownames(dataframe)

데이터 프레임의 인덱스를 제공합니다.

질문을 이해했다면 데이터 프레임(또는 목록)의 항목에 행별로 액세스할 수 있기를 원할 뿐입니다.

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

기타.

아마도 이 "성냥"의 보완적인 예가 도움이 될 것입니다.

두 개의 데이터셋 보유:

first_dataset <- data.frame(name = c("John", "Luke", "Simon", "Gregory", "Mary"),
                            role = c("Audit", "HR", "Accountant", "Mechanic", "Engineer"))

second_dataset <- data.frame(name = c("Mary", "Gregory", "Luke", "Simon"))

이름 열에 수집 값(전체 수집) 간 고유한 값만 포함된 경우 일치로 반환되는 인덱스 값을 기준으로 다른 데이터 집합의 행에 액세스할 수 있습니다.

name_mapping <- match(second_dataset$name, first_dataset$name)

match는 지정된 이름에서 first_deconds에 있는 이름의 적절한 행 인덱스를 반환합니다.5 4 2 1예제 여기 - 행 인덱스별 첫 번째 데이터 집합에서 역할에 액세스(지정된 이름 값 기준)

for(i in 1:length(name_mapping)) {
    role <- as.character(first_dataset$role[name_mapping[i]])   
    second_dataset$role[i] = role
}

===

second dataset with new column:
     name       role
1    Mary   Engineer
2 Gregory   Mechanic
3    Luke Supervisor
4   Simon Accountant

x           <-  matrix(ceiling(9*runif(20)), nrow=5)
colnames(x) <-  c("these", "are", "the", "columnes")
df          <-  data.frame(x)

결과: 데이터 프레임

which(df == "2") #returns rowIndexes results from the entire dataset, in this case it returns a list of 3 index numb

결과:

5 13 17

length(which(df == "2")) #count numb. of rows that matches a condition

결과:

3

다음의 예와 같이 열을 기준으로 수행할 수도 있습니다.

which(df$columnName == c("2", "7")) #you do the same with strings
length(which(df$columnName == c("2", "7")))

언급URL : https://stackoverflow.com/questions/2370515/how-to-get-row-index-number-in-r