我有一个带有列标题的数据框和一个字符串字符向量。
到目前为止,在数据框中,我可以保留与向量中的字符串匹配的列名。但是,生成的截断数据框按字母顺序显示列,而不是按原始矢量中的顺序显示。
# 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
答案 0 :(得分:4)
而不是使用:
ifelse
只需使用:
df[,which(colnames(df) %in% v)]
答案 1 :(得分:0)
您还可以使用subset()
功能:
subset(df,select=c(v))