0

几天来,我已经尝试了不同的解决方案(包括在 stackoverflow 和 R 帮助线程上讨论的几个)。没有一个产生好的解决方案。因此,这个帖子。

我需要创建一个数据框

df <- as.data.frame (matrix (nrow = 3470, ncol = 22,000)

前 3 列是字符/字符串数据。其余是数字数据。混合模式搞砸了这种方法。

df <- data.frame (c1 = char(22,000), c2 = char(22,000), c3 = char(22,000), .....)

有没有办法在这个解决方案中将第 4 列设置为 22,000 列?(然后我可以使用 colnames (df) 来设置真实姓名)。

在用类似的东西初始化数据帧时

 df <- data.frame (c1 = char(22,000), c2 = char(22,000), c3 = char(22,000), .....)

有没有一种机制可以使用 rep 之类的东西来声明 c4 到 c22,000 是数字的?

非常感谢。(我知道初始化数据框已经讨论过好几次了。我尝试了几种方法,但没有找到一个好的解决方案)。因此,这篇文章成为了一个被殴打致死的话题。

4

1 回答 1

2

我不确定您从哪里获得该语法。首先,不要使用逗号作为千位分隔符;这对人类来说很好,但对计算机来说却不是。其次,创建字符向量的函数是character(n),不是char(n)。第三,参数data.frame是您想要在数据框中的,而不是行,因此您可能需要 3470,而不是 22000。最后,数字向量的等效函数是numeric(n).

df <- data.frame(
    c1 = character(3470),
    c2 = character(3470),
    c3 = character(3470),
    n1 = numeric(3470),
    ...)

如果你真的有 22000 列,你可以通过传递一个矩阵来做到这一点,该矩阵将被转换为多列:

df <- data.frame(
    c1 = character(3470),
    c2 = character(3470),
    c3 = character(3470),
    n = matrix(0, nrow=3470, ncol=21997))
于 2013-07-10T10:24:11.393 回答