当 A 列中的值与 R 中的第二个数据文件相遇时,提取 B 列的值
extract value of Column B when value in column A has met with second data file in R
我有两个数据文件。第一个是数据文件如下
Cars Engine Tires
Audi 77 55
Volvo 99 45
BMW 66 99
Opel 34 56
第二个数据文件。第二个数据文件经常变化
Week27
Car1 Car2
Audi Volvo
Volvo BMW
Opel Audi
我想从相应的汽车中提取发动机值或轮胎值,并将它们与另一辆车进行比较。这每周都会更改,汽车的名称也会更改。 R 中是否有此代码。是否有一个函数可以快速执行此操作,然后只从 df1 中取出一个值,并使用它对应于 df2
中表示同一辆车的位置
我想在公式中使用这些值,这样就不会与汽车名称发生交互。我如何命令它按 Week27 数据文件的顺序排列,但使用文件 1
中的数据
(77+99)/77
(99+66)/66
(34+77)/34
根据您的预期输出,您可以使用:
apply(Week27,1,function(x) with(df1, (Engine[Cars==x[1]] + Engine[Cars==x[2]])/Engine[Cars==x[1]] ))
[1] 2.285714 1.666667 3.264706
数据:
df1 <- read.table(text='Cars Engine Tires
Audi 77 55
Volvo 99 45
BMW 66 99
Opel 34 56',header=T)
Week27 <- read.table(text='Car1 Car2
Audi Volvo
Volvo BMW
Opel Audi',header=T)
我有两个数据文件。第一个是数据文件如下
Cars Engine Tires
Audi 77 55
Volvo 99 45
BMW 66 99
Opel 34 56
第二个数据文件。第二个数据文件经常变化
Week27
Car1 Car2
Audi Volvo
Volvo BMW
Opel Audi
我想从相应的汽车中提取发动机值或轮胎值,并将它们与另一辆车进行比较。这每周都会更改,汽车的名称也会更改。 R 中是否有此代码。是否有一个函数可以快速执行此操作,然后只从 df1 中取出一个值,并使用它对应于 df2
中表示同一辆车的位置我想在公式中使用这些值,这样就不会与汽车名称发生交互。我如何命令它按 Week27 数据文件的顺序排列,但使用文件 1
中的数据(77+99)/77
(99+66)/66
(34+77)/34
根据您的预期输出,您可以使用:
apply(Week27,1,function(x) with(df1, (Engine[Cars==x[1]] + Engine[Cars==x[2]])/Engine[Cars==x[1]] ))
[1] 2.285714 1.666667 3.264706
数据:
df1 <- read.table(text='Cars Engine Tires
Audi 77 55
Volvo 99 45
BMW 66 99
Opel 34 56',header=T)
Week27 <- read.table(text='Car1 Car2
Audi Volvo
Volvo BMW
Opel Audi',header=T)