从简单数据框中提取数据时遇到问题。假设以下数据框:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => 'xxx', # required
:aws_secret_access_key => 'yyy', # required
:region => 'eu-west-1', # optional, defaults to 'us-east-1'
:host => 's3.example.com', # optional, defaults to nil
:endpoint => 'https://s3.example.com:8080' # optional, defaults to nil
}
config.fog_directory = 'name_of_directory' # required
config.fog_public = false # optional, defaults to true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
end
我想提取以下矢量的费率:
> df
Currency Rate
AB 1
CD 2
EF 3
GH 4
这样做我使用以下(遗憾的是不起作用):
v <- c(EF, EF, GH, AB, CD, AB)
R返回:
df[df[,1] %in% v, 2]
但我正在寻找这个载体:
[1] "1" "2" "3" "4"
任何想法,我如何处理这个问题?
答案 0 :(得分:1)
您可以使用match
,这将导致值重复,并按v
中的顺序重复:
df[match(v, df$Currency),2]
#[1] 3 3 4 1 2 1