[英]How to combine R loop result in a dataframe
我當前的代碼如下:
for (i in c(1:10))
{excess_returns <- i - 2
print(excess_returns
}
當我使用 print() 時,它會打印出每個 output 但是我如何合並每個 output 並將它們變成一個數據幀。
這是我的問題的簡化視圖,我在數據集中得到了 23 列,我想使用每一列減去另一列,並將所有輸出組合在一起形成一個新的 dataframe
感謝您的幫助
像這樣怎么樣:
excess_returns <- rep(NA, 10)
for (i in c(1:10)) {
excess_returns[i] <- i - 2
}
excess_returns
#> [1] -1 0 1 2 3 4 5 6 7 8
由代表 package (v2.0.1) 於 2022 年 2 月 4 日創建
請注意,在上面,您首先初始化了excess_returns
向量,然后用for 循環填充它。 這是首選方法,尤其是在實際數據問題比這個玩具示例大得多的情況下。
要將循環的 output 作為 data.frame 返回,我們可以使用@DaveArmstrong 的答案。 但我們也可以使用循環 function 來實現相同的所需 output:
lapply(1:10, function(x) x - 2)
如果我們有一個實際的 data.frame,我們使用 dataframe 作為lapply
的參數,如下所示:
my_df <- iris[1:4]
lapply(my_df, \(x) x-2)
或使用 dplyr:
library(dplyr)
my_df %>% mutate(across(everything(), ~ .x -2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.