Выберите столбцы фрейма данных, если их имена содержатся в векторе, но сохраняя исходный порядок - PullRequest
0 голосов
/ 25 мая 2018

У меня есть фрейм данных с заголовком столбца и вектором строкового символа.

Пока что во фрейме данных я могу хранить имена столбцов, которые соответствуют строке символов в векторе.Однако полученный в результате усеченный фрейм данных отображает столбцы в алфавитном порядке, а не в порядке в исходном векторе.

# the data frame
df <- head(t(USArrests))

# the vector of string character
v <- c("Wyoming", "Alabama", "California", "Arizona")

# subsetting the data frame by column names contained in the vector
df[,which(colnames(df) %in% v)]
         Alabama Arizona California Wyoming
Murder      13.2     8.1        9.0     6.8
Assault    236.0   294.0      276.0   161.0
UrbanPop    58.0    80.0       91.0    60.0
Rape        21.2    31.0       40.6    15.6

Но я пытаюсь сохранить исходный порядок в векторе, например:

         Wyoming    Alabama California  Arizona
Murder       6.8       13.2        9.0      8.1
Assault    161.0      236.0      276.0    294.0
UrbanPop    60.0       58.0       91.0     80.0
Rape        15.6       21.2       40.6     31.0

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вы также можете использовать функцию subset():

subset(df,select=c(v))
0 голосов
/ 25 мая 2018

Вместо использования:

df[,which(colnames(df) %in% v)]

Просто используйте:

df[, v]
...