Arrays 根据索引~文本对数组排序

Arrays 根据索引~文本对数组排序,arrays,r,indexing,Arrays,R,Indexing,请输入R这些数据: S.names <- c("FXI", "XLB", "GLD", "IWM", "XLE", "XLF", "EWZ", "GDX", "XLK", "TLT", "IYR", "QQQ", "SLV", "EWJ", "XLV", "DIA", "XHB", "EEM", "USO", "VWO", "SPY", "EFA") strike_vec <- structure(list(Strike = c(152, 43, 61, 11, 56, 37,

请输入
R
这些数据:

S.names <- c("FXI", "XLB", "GLD", "IWM", "XLE", "XLF", "EWZ", "GDX", "XLK", 
"TLT", "IYR", "QQQ", "SLV", "EWJ", "XLV", "DIA", "XHB", "EEM", 
"USO", "VWO", "SPY", "EFA")
strike_vec <- structure(list(Strike = c(152, 43, 61, 11, 56, 37, 36, 159, 96, 
74, 71, 27, 163, 128, 35, 44, 30, 40, 81, 19, 31, 48)), .Names = "Strike", row.names = 
c("DIA", "EEM", "EFA", "EWJ", "EWZ", "FXI", "GDX", "GLD", "IWM", "IYR", 
"QQQ", "SLV", "SPY", "TLT", "USO", "VWO", "XHB", "XLB", "XLE", 
"XLF", "XLK", "XLV"), class = "data.frame")
其中
rownames(strike_vec.new)
完全遵循
S.names的顺序

我该怎么办?

只需使用:

strike_vec[S.names,,drop=FALSE]
其中:

    Strike
FXI     37
XLB     40
GLD    159
IWM     96
XLE     81
XLF     19
EWZ     56
GDX     36
XLK     31
TLT    128
IYR     74
QQQ     71
SLV     27
EWJ     11
XLV     48
DIA    152
XHB     30
EEM     43
USO     35
VWO     44
SPY    163
EFA     61
这是因为如果使用字符向量对数据帧的行进行索引,索引将基于行名称。

只需使用:

strike_vec[S.names,,drop=FALSE]
其中:

    Strike
FXI     37
XLB     40
GLD    159
IWM     96
XLE     81
XLF     19
EWZ     56
GDX     36
XLK     31
TLT    128
IYR     74
QQQ     71
SLV     27
EWJ     11
XLV     48
DIA    152
XHB     30
EEM     43
USO     35
VWO     44
SPY    163
EFA     61
这是因为如果使用字符向量对数据帧的行进行索引,索引将基于行名称