我有一個list物件和一些我想加載的“.csv”檔案,以便以mean非常特定的方式運行該函式。
我的串列l1包含 5 個元素,每個元素都有一個數字,我的 .csv 檔案在加載時每個都提供一個數字。我想根據名稱(即 A、B、C、D、E)將 .csv 檔案與串列中的元素配對。
我的預期結果類似于expected下面創建的物件。有沒有這樣做的好方法?
l1 <- list(2,3,4,5,6)
names(l1) <- c("A", "B", "C", "D", "E")
# Dummy .csv when loaded in
A1_csv <- 4
B2_csv <- 6
C3_csv <- 7
D4_csv <- 8
E5_csv <- 9
expected <- list(mean(c(A1_csv, l1[[1]])),
mean(c(B2_csv, l1[[2]])),
mean(c(C3_csv, l1[[3]])),
mean(c(D4_csv, l1[[4]])),
mean(c(E5_csv, l1[[5]]))
)
uj5u.com熱心網友回復:
對于示例資料,解決方案非常簡單,并且已經提到:
a <- as.list(setNames(2:6, letters[1:5]))
b <- c(4, 6:9)
Map(mean, a, b)
#> $a
#> [1] 2
#>
#> $b
#> [1] 3
#>
#> $c
#> [1] 4
#>
#> $d
#> [1] 5
#>
#> $e
#> [1] 6
由reprex 包于 2022-03-07 創建(v2.0.1)
但是,如果這些串列可能會發生一些變化并且可能不包含相同的names,那么您需要一些更靈活的東西來首先找到常用名稱并子集串列:
a <- as.list(setNames(1:10, letters[1:10]))
b <- as.list(setNames(20:5, letters[20:5]))
set <- intersect(names(a), names(b))
Map(
function(i, j) {
mean(i, j)
},
i = a[set],
j = b[set]
)
#> $e
#> [1] 5
#>
#> $f
#> [1] 6
#>
#> $g
#> [1] 7
#>
#> $h
#> [1] 8
#>
#> $i
#> [1] 9
#>
#> $j
#> [1] 10
由reprex 包于 2022-03-07 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/440043.html
上一篇:將CSS鏈接到HTML
下一篇:將檔案讀入arrayListOf
