假設我有一個串列
mylist <- list(5, 7, 9, 16)
我想創建一個函式來計算串列物件和之前的物件之間的差異(即,在本例中為 7-5=2、9-7=2、16-9=7)
myfunction <- function(myvalue, myvalue_minus1){
myvalue - myvalue_minus1
}
# Example
myresult <- myfunction(7, 5)
> myresult
[1] 2
我想計算所有串列物件之間的差異,所以我在串列上回圈了函式。
但是,我如何表達我希望myvalue_minus1始終是串列的前一個值(即,何時value_i == [[2]],我如何讓回圈檢索myvalue_minus1 == [[1]]?
myvalue_list <- list()
for(value_i in 1:4){
myvalue_list[[value_i]] <- myfunction(myvalue = value_i, myvalue_minus1)
}
# Desired output
> myvalue_list
[[1]]
[1] 5 # not sure if the first value should be 0 or 5
[[2]]
[1] 2
[[3]]
[1] 2
[[4]]
[1] 7
我試過類似的東西
myvalue_list <- list()
for(value_i in 1:4){
myvalue_list[[value_i]] <- myfunction(myvalue = value_i, myvalue_minus1 = value_i[[i]] -1 ) # wrong
}
但這不起作用。有什么建議么?
編輯
該myfunction功能只是為了制作一個易于重現的示例,我正在使用的功能還有其他用途。因此,我只對解決標題中所述問題的答案感興趣。
編輯 2 添加了所需的輸出
uj5u.com熱心網友回復:
試試這個功能
myvalue_list <- list()
for(value_i in 2:4){
myvalue_list[[value_i-1]] <- myfunction(myvalue = mylist[[value_i]],
myvalue_minus1 = mylist[[value_i-1]])
}
myvalue_list
#> [[1]]
#> [1] 2
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/490579.html
上一篇:Pandas總和從excel檔案串列中計數并保存到新檔案
下一篇:如何觀察react.js的變化?
