從結果串列開始:
id <- c(1,2,3,4,5,1,2,3,4,5)
month <- c(3,4,2,1,5,7,3,1,8,9)
preds <- c(0.5,0.1,0.15,0.23,0.75,0.6,0.49,0.81,0.37,0.14)
l_1 <- data.frame(id, preds, month)
preds <- c(0.45,0.18,0.35,0.63,0.25,0.63,0.29,0.11,0.17,0.24)
l_2 <- data.frame(id, preds, month)
preds <- c(0.58,0.13,0.55,0.13,0.76,0.3,0.29,0.81,0.27,0.04)
l_3 <- data.frame(id, preds, month)
preds <- c(0.3,0.61,0.18,0.29,0.85,0.76,0.56,0.91,0.48,0.91)
l_4 <- data.frame(id, preds, month)
outcome <- list(l_1, l_2, l_3, l_4)
我的興趣是獲取分配的唯一行值并創建一個新變數,就像我們這樣做一樣:
sample <- outcome[[1]]
sample$unique_id <- rownames(sample)
但是,我不想手動進行,因為我的串列有 100 個串列。此外,我不想手動為每一行賦值,因為我想保留由 R 生成的行名稱。
有什么線索嗎?
uj5u.com熱心網友回復:
嘗試使用 lapply
lapply(outcome, function(x) {
x$unique_id <- rownames(x)
x
})
uj5u.com熱心網友回復:
隨著lapply和cbind:
lapply(outcome, function(x) {
cbind(unique_id=rownames(x), x)
})
uj5u.com熱心網友回復:
我們也可以使用 rownames_to_column
library(dplyr)
library(purrr)
library(tibble)
map(outcome, ~ .x %>%
rownames_to_column('unique_id'))
uj5u.com熱心網友回復:
另一個基本的 R 選項是使用 Map
Map(function(x){
x$unique_id <- rownames(x)
x
}, outcome)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314361.html
上一篇:ListaddAll(aList)thenaList.clear():如果實作既不是ArrayList也不是LinkedList,我會得到null嗎?[復制]
