我有2个数据框。
一个(df1)有斜率和截距的列,另一个(df2)有一个索引列(即行号)。
我希望将基于df1参数的函数应用到df2中的整个索引列。我不希望函数混合和匹配斜率和截距(即,我想确保函数始终使用斜率和df1中相同列的截距)。
我试图这样做
<Resources>
<Resource Language="EN-US" />
<Resource Language="JA-JP" />
<Resource Language="FR-FR" />
</Resources>
但它不起作用。
以下是示例数据:
my_function <- function(x) {for (i in df1$slope) for (j in df1$intercept) {((i*x)+j)}}
df3 <- for (k in df2$Index) {my_function(k)}
df3
这是我需要的输出:
> df1
thermocouple slope intercept
1 1 0.01 0.5
2 2 -0.01 0.4
3 3 0.03 0.2
> df2
index t_1 t_2 t_3
1 1 0.3 0.2 0.2
2 2 0.5 0.2 0.3
3 3 0.3 0.9 0.1
4 4 1.2 1.8 0.4
5 5 2.3 3.1 1.2
我做错了什么?
谢谢!
答案 0 :(得分:1)
试试这个:
通过将三个带有值的参数同时传递给Map
中定义的匿名函数。
Map( function(index, slope, intercept) (index * slope ) + intercept,
index = df2$Index, slope = df1$slope, intercept = df1$intercept)
可能是这样的:我不确定你喜欢哪一个,因为问题中没有数据和预期输出。
lapply( df2$index, function(index){
unlist( Map( function(slope, intercept) (index * slope ) + intercept,
slope = df1$slope, intercept = df1$intercept) )
})