12

PHP では、for ループで配列の名前と値の両方にアクセスできます。

foreach ( $array as $key => $value ) {

名前付きリストをループするときに、Rに匹敵するものはありますか?

4

3 に答える 3

9

いくつかのダミーデータとばかげた工夫の例を使用する

ll <- list(A = 1:10, B = LETTERS[1:10], C = letters[1:10])

あなたはlapply()の要素のインデックスを超えることができますll

out <- lapply(seq_along(ll),
           function(ind, list, names) {
               paste(names[ind], "=", paste(list[[ind]], collapse = ", "))
           }, list = ll, names = names(ll))

R> out
[[1]]
[1] "A = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10"

[[2]]
[1] "B = A, B, C, D, E, F, G, H, I, J"

[[3]]
[1] "C = a, b, c, d, e, f, g, h, i, j"

またはfor()リストをループします。

ll2 <- vector("list", length(ll))
nams <- names(ll)
for(i in seq_along(ll)) {
    ll2[[i]] <- paste(nams[i], "=", paste(ll[[i]], collapse = ", "))
}
ll2

R> ll2
[[1]]
[1] "A = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10"

[[2]]
[1] "B = A, B, C, D, E, F, G, H, I, J"

[[3]]
[1] "C = a, b, c, d, e, f, g, h, i, j"
于 2012-06-20T08:05:48.493 に答える
3

リストの名前を取得するには、names(list).

ll <- list(A = 1:10, B = LETTERS[1:10], C = letters[1:10])
names(ll)
#[1] "A" "B" "C"

*apply 関数のほとんどは、最初にリストに名前が付けられていれば、適切な名前の値を返します。

sapply(ll, max)
#   A    B    C 
#"10"  "J"  "j" 
于 2012-06-20T14:28:37.850 に答える