R:从向量中提取值,并在函数中使用它们来计算差值
我想从向量中提取特定的值,然后在函数中使用它们。我将用这个例子来解释它 所有的计算都是在闪亮的应用程序中进行的,这个例子是一个简化的版本 目前… 我计算x轴两个温度点之间每个样本的时间差(样本可以使用ID列进行区分)(在下面的示例中,x1=600-->在我的闪亮应用程序中是一个反应值,x2=800-->是一个常量值)R:从向量中提取值,并在函数中使用它们来计算差值,r,R,我想从向量中提取特定的值,然后在函数中使用它们。我将用这个例子来解释它 所有的计算都是在闪亮的应用程序中进行的,这个例子是一个简化的版本 目前… 我计算x轴两个温度点之间每个样本的时间差(样本可以使用ID列进行区分)(在下面的示例中,x1=600-->在我的闪亮应用程序中是一个反应值,x2=800-->是一个常量值) #####示例数据 数据您可以通过执行以下操作为给定的VAL列表添加列: data.new <- data.frame(ID = unique(data$id)) vals
#####示例数据
数据您可以通过执行以下操作为给定的VAL列表添加列:
data.new <- data.frame(ID = unique(data$id))
vals <- seq(600,800,by=50)
data.new[paste("Zeit",vals,sep="")] <- sapply(vals,function(xout.input) {
vapply(unique(data$id), function(a){
with(data[data$id == a,], approx(x = Temp, y = Zeit, xout = xout.input))$y
}, double(1))
})
我希望这有帮助。dat[seq(x1,x2,by=50)]
?不确定:“用提取的温度值计算时差,并始终使用温度800”,这对我来说毫无意义。这很难解释,但我会尽力做到最好。让我解释一下,如果我们有x1=600和x2=800,我们想要所有600和800之间的值乘以50,我们得到:600650700750800。然后我需要在我的函数中使用每个值:Zt(查看上面的代码片段)作为xout=…
,并使用计算值创建一个新列
data.new <- data.frame(ID = unique(data$id))
vals <- seq(600,800,by=50)
data.new[paste("Zeit",vals,sep="")] <- sapply(vals,function(xout.input) {
vapply(unique(data$id), function(a){
with(data[data$id == a,], approx(x = Temp, y = Zeit, xout = xout.input))$y
}, double(1))
})
> data.new
ID Zeit600 Zeit650 Zeit700 Zeit750 Zeit800
1 1 601.7826 504.7059 321.2658 264.3038 207.3418
2 2 602.6250 546.6667 316.6667 261.1111 205.5556
> datat85$Zeit == data.new$Zeit600
[1] TRUE TRUE
> datat85$Zeit2 == data.new$Zeit800
[1] TRUE TRUE