2

私は次のことをしたいと思います

X = matrix(0, nrow = p, ncol = N)
p=5
N=100
for (i in 1:N)
{
X[1,i] = e1(t[i])
X[2,i] = e2(t[i])
X[3,i] = e3(t[i])
X[4,i] = e4(t[i])
X[5,i] = e5(t[i])
}

ここで e1()。e2()、e3()、e4()、および e5() は特定の関数です。

次のコードを試しました:

for(j in 1:p)
{
for (i in 1:N)
{
    X[j,i] = as.symbol(paste("e", j, sep = ""))(t[i])
}
}

しかし、うまくいきません。

ご協力いただきありがとうございます

キャロル

4

2 に答える 2

2

あなたは機能が欲しいget

for(j in 1:p)
{
for (i in 1:N)
{
    X[j,i] = get(paste("e", j, sep = ""))(t[i])
}
}

e1(etc)がベクトル化されている場合は、次のループの1つを削除できます。

for (j in 1:p) {
  X[j,] = get(paste0("e", j))(t)
}
于 2013-02-16T22:18:44.453 に答える
2

それを行う1つの方法は、次を使用することですdo.call

R> myfun <- function(x) print(x)
R> do.call(paste0("my","fun"), list("foo"))
[1] "foo"

の最初の引数はdo.call関数の名前 (pasteここで使用できます) で、2 番目の引数は渡す引数のリストです。

于 2013-02-16T22:13:41.930 に答える