2

これは簡単だと思いますが、今はわかりません。

基本的に:変数の長いベクトルがあります:

names <- c("first","second", "third")

いくつかのデータがあり、変数を追加する必要があります。私はそれをできた:

data$first <- NA

しかし、リストが長いので、自動化されたソリューションが必要です。これはうまくいきません

for (i in 1:length(names)) (paste("data$", names[i],sep="") <- NA)

これが必要な理由は、必要なすべての変数を持っていないデータフレームに垂直にマージする必要があるためです。

前もって感謝します

4

2 に答える 2

3

あなたが例で見ることができるように

?`[<-.data.frame`

ループする必要はありません、あなたはただすることができます

data[names] <- NA

例:

> (data <- data.frame(x=1:3, y=letters[1:3]))
  x y
1 1 a
2 2 b
3 3 c
> data[names] <- NA
> data
  x y first second third
1 1 a    NA     NA    NA
2 2 b    NA     NA    NA
3 3 c    NA     NA    NA
于 2010-04-20T08:26:08.947 に答える
3

$ の代わりに括弧を使用して、名前の変数を使用して列にアクセスできます。

for (name in names) data[name] <- NA

しかし、reshape パッケージ (または plyr) の rbind.fill() を見ることができます。

これが役に立てば幸いです、エティエンヌ

于 2010-04-17T19:28:33.243 に答える