我有一個名單,如下所示:
> myNamedList
(...)
$`1870`
[1] 84.24639
$`1871`
[1] 84.59707
(...)
我想在資料框的列中分配這些值,其中串列元素的名稱對應于資料框的行號。現在我是這樣進行的:
for (element in names(myNamedList)) {
targetDataFrame[as.numeric(element),][[columnName]] = myNamedList[[element]]
}
如果串列有點大,這會很慢,而且也不是很 R 式。我相信我可以用 做點什么apply,但不知道去哪里找。感謝你的幫助。
uj5u.com熱心網友回復:
向原始資料添加行號,然后堆疊串列,然后合并。見示例:
# example
#data
set.seed(1); d <- data.frame(x = sample(LETTERS, 5))
#named list
x <- list("2" = 11, "4" = 22)
#add a row number
d$rowID = seq(nrow(d))
# stack the list, and merge
merge(d, stack(x), by.x = "rowID", by.y = "ind", all.x = TRUE)
# rowID x values
# 1 1 Y NA
# 2 2 D 11
# 3 3 G NA
# 4 4 A 22
# 5 5 B NA
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367491.html
