3

Rでは、1つの列でdata.frameを作成すると、他の列を追加できます

> data <- data.frame(n=c(1:4))
> data
  n
1 1
2 2
3 3
4 4
> data$n2 <- 2
> data
  n n2
1 1  2
2 2  2
3 3  2
4 4  2

しかし、空のdata.frameを作成すると、新しい列を追加できません

> data <- data.frame()
> data
data frame with 0 columns and 0 rows
> data$n2 <- 2
Error in `$<-.data.frame`(`*tmp*`, "n2", value = 2) : 
  replacement has 1 row, data has 0

なぜ ?空の data.frame に新しい列を追加するにはどうすればよいですか?

4

1 に答える 1

4

空の data.frame に列を追加できますが、既存の data.frame の寸法と一致させるには、割り当てられたベクトルの長さをゼロにする必要があります。

data <- data.frame()
data$n2 <- numeric()
data
# [1] n2
# <0 rows> (or 0-length row.names)

(最初の例では、割り当ての RHS の値は既存の列と同じ長さではありませんでしたが、必要な長さの列を形成するために「リサイクル」されました。既存の data.frame に行がない場合ただし、リサイクルを使用して列の長さを一致させることはできません。)

于 2013-10-24T19:38:58.197 に答える