3

私が言っl = list()てからそうl[[27]] = 100すると、値を含む26の他のエントリが作成NULLされます。これを回避する方法はありますか?

たとえば、私が実行した場合:l <- list(); for (i in c(4,7,1)) { l[[i]] <- i^1 }

1から7の範囲のエントリと、割り当てなかったすべてのエントリのNULL値を含むリストが作成されます。これらの偽のエントリを回避するにはどうすればよいですか?

4

3 に答える 3

8

インデックスに文字値を使用します。

l <- list(); for (i in c(4,7,1)) { l[[as.character(i)]] <- i^1 }

> l
$`4`
[1] 4

$`7`
[1] 7

$`1`
[1] 1
于 2013-02-10T19:47:34.897 に答える
4

for私はループを避けて使用しますlapply

> x <- c(4, 7, 1)
> setNames(lapply(x, `^`, 1), x)
$`4`
[1] 4

$`7`
[1] 7

$`1`
[1] 1
于 2013-02-10T20:06:30.250 に答える
0

リストに追加できます:

l <- list(); for (i in c(4,7,1)) { l <- append(l, i^1) }
于 2013-02-10T19:48:55.750 に答える