1

我想在几个单独的数据帧中创建很多变量,然后将它们组合成一个大数据帧。

每张纸都标有一个字母(有 24 个),每张纸都贡献了 100-200 个变量。我可以这样写:

a$varible1 <- NA
a$variable2 <- NA
.
.
.
w$variable25 <- NA

这可能/将会变得丑陋,我想编写一个循环或使用向量来完成这项工作。不过,我有一段时间做这件事。

我基本上需要一个脚本,它可以让我指定一个表格,然后在上面加上数字。

所以,

a$variable[i] <- NA

其中 [i] 被附加到创建的实际变量上。

4

3 回答 3

2

我刚刚从@eddi 学到了这个巧妙的小技巧

#created some random dataset with 3 columns
library(data.table)
        a <- data.table(
        a1 = c(1,5),
        a2 = c(2,1),
        a3 = c(3,4)
        )

#assuming that you now need to ad more columns from a4 to a200
# first, creating the sequence from 4 to 200
        v = c(4:200)
# then using that sequence to add the 197 more columns 
        a[, paste0("a", v) :=
                    NA]


# now a has 200 columns, as compared to the three we initiated it with
       dim(a)
       #[1]   2 200
于 2013-09-26T17:09:24.983 回答
0

我认为您实际上并不需要这个,尽管您似乎出于某种原因这样认为。

也许是这样的:

a <- as.data.frame(matrix(NA, ncol=10, nrow=5))
names(a) <- paste0("Variable", 1:10)

print(a)
#   Variable1 Variable2 Variable3 Variable4 Variable5 Variable6 Variable7 Variable8 Variable9 Variable10
# 1        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 2        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 3        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 4        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 5        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
于 2013-09-26T17:12:51.680 回答
0

如果你想要不同类型的变量:

p <- 10 # number of variables
N <- 100 # number of records
vn <- vector(mode="list", length=p)
names(vn)  <- paste0("V", seq(p))
vn[1:8] <- NA_real_ # numeric
vn[9:10] <- NA_character_ # character
df <- as.data.frame(lapply(vn, function(x, n) rep(x, n), n=N))
于 2013-09-26T19:30:56.743 回答